]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA10/cata.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA10 / cata.py
1 #& MODIF ENTETE  DATE 08/03/2011   AUTEUR MASSIN P.MASSIN 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2011  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 # RESPONSABLE COURTOIS M.COURTOIS
21
22 # faire que la division soit toujours réelle
23 from __future__ import division
24
25 import Accas
26 from Accas import *
27 from Accas import _F
28 from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh
29 from math import pi ,exp,log, log10, sqrt
30 import ops
31
32 try:
33   import aster
34 except ImportError:
35   pass
36
37
38 # -----------------------------------------------------------------------------
39 JdC = JDC_CATA(code='ASTER',
40                execmodul=None,
41                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
42                          AU_MOINS_UN('FIN'),
43                          A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
44 # Type le plus general
45 class entier   (ASSD):
46    def __init__(self,valeur=None,**args):
47       ASSD.__init__(self,**args)
48       self.valeur=valeur
49
50    def __adapt__(self,validator):
51       if validator.name == "list":
52          #validateur liste,cardinalité
53          return (self,)
54       elif validator.name == "type":
55          #validateur type
56          return validator.adapt(self.valeur or 0)
57       else:
58          #validateur into et valid
59          return self
60
61 class reel(ASSD):
62    def __init__(self,valeur=None,**args):
63       ASSD.__init__(self,**args)
64       self.valeur=valeur
65
66    def __call__(self):
67       return self.valeur
68
69    def __adapt__(self,validator):
70       if validator.name == "list":
71          #validateur liste,cardinalité
72          return (self,)
73       elif validator.name == "type":
74          #validateur type
75          return validator.adapt(self.valeur or 0.)
76       else:
77          #validateur into et valid
78          return self
79
80 # -----------------------------------------------------------------------------
81 # Type geometriques
82 class no  (GEOM):pass
83 class grno(GEOM):pass
84 class ma  (GEOM):pass
85 class grma(GEOM):pass
86
87 # -----------------------------------------------------------------------------
88 from SD.co_cabl_precont     import cabl_precont
89 from SD.co_cara_elem        import cara_elem
90 from SD.co_cham_mater       import cham_mater
91 from SD.co_char_acou        import char_acou
92 from SD.co_char_cine_acou   import char_cine_acou
93 from SD.co_char_cine_meca   import char_cine_meca
94 from SD.co_char_cine_ther   import char_cine_ther
95 from SD.co_char_meca        import char_meca
96 from SD.co_char_ther        import char_ther
97 from SD.co_contact          import char_contact
98 from SD.co_compor           import compor_sdaster
99 from SD.co_courbe           import courbe_sdaster
100 from SD.co_fiss_xfem        import fiss_xfem
101 from SD.co_fond_fiss        import fond_fiss
102 from SD.co_interf_dyna_clas import interf_dyna_clas
103 from SD.co_gfibre           import gfibre_sdaster
104 from SD.co_listis           import listis_sdaster
105 from SD.co_list_inst        import list_inst
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 from SD.co_grille    import grille_sdaster
139
140 # -----------------------------------------------------------------------------
141 # champs
142 from SD.co_champ     import cham_gd_sdaster
143 from SD.co_cham_no   import cham_no_sdaster
144 from SD.co_carte     import carte_sdaster
145 from SD.co_cham_elem import cham_elem
146
147 # -----------------------------------------------------------------------------
148 # resultat : (evol_sdaster,mode_stat,mode_meca)
149 from SD.co_resultat     import resultat_sdaster, resultat_jeveux
150 from SD.co_resultat_dyn import resultat_dyn
151 from SD.co_mode_meca    import mode_meca
152
153 # -----------------------------------------------------------------------------
154 class acou_harmo    (resultat_dyn):pass
155 class dyna_harmo    (resultat_dyn):pass
156 class dyna_trans    (resultat_dyn):pass
157 class harm_gene     (resultat_dyn):pass
158 class mode_acou     (resultat_dyn):pass
159 class mode_flamb    (resultat_dyn):pass
160 class mode_gene     (resultat_dyn):pass
161
162 # -----------------------------------------------------------------------------
163 class comb_fourier  (resultat_sdaster):pass
164 class fourier_elas  (resultat_sdaster):pass
165 class fourier_ther  (resultat_sdaster):pass
166 class mult_elas     (resultat_sdaster):pass
167 class theta_geom    (resultat_sdaster):pass
168
169 # -----------------------------------------------------------------------------
170 # resultat_sdaster/evol_sdaster :
171 class evol_sdaster(resultat_sdaster):pass
172 class evol_char(evol_sdaster):pass
173 class evol_elas(evol_sdaster):pass
174 class evol_noli(evol_sdaster):pass
175 class evol_ther(evol_sdaster):pass
176 class evol_varc(evol_sdaster):pass
177
178 # -----------------------------------------------------------------------------
179 # resultat_sdaster/mode_meca :
180 class mode_meca_c(mode_meca):pass
181
182 # -----------------------------------------------------------------------------
183 # fonctions / nappe / para_sensi
184 from SD.co_fonction import fonction_sdaster, para_sensi, fonction_c, nappe_sdaster
185
186 # -----------------------------------------------------------------------------
187 # matr_asse :
188 from SD.co_matr_asse      import matr_asse
189 from SD.co_matr_asse_gene import matr_asse_gene
190 from SD.co_matr_asse_gene import matr_asse_gene_r
191 from SD.co_matr_asse_gene import matr_asse_gene_c
192
193 from SD.co_matr_asse_gd import matr_asse_gd, \
194                                matr_asse_depl_r, matr_asse_depl_c, \
195                                matr_asse_pres_r, matr_asse_pres_c, \
196                                matr_asse_temp_r, matr_asse_temp_c
197
198 # -----------------------------------------------------------------------------
199 # matr_elem :
200 from SD.co_matr_elem import matr_elem, \
201                             matr_elem_depl_r, matr_elem_depl_c, \
202                                               matr_elem_pres_c, \
203                             matr_elem_temp_r
204
205 # -----------------------------------------------------------------------------
206 # table :
207 from SD.co_table import table_sdaster, table_jeveux
208 from SD.co_table_fonction import table_fonction
209 from SD.co_table_container import table_container
210
211 # -----------------------------------------------------------------------------
212 # vect_asse_gene :
213 from SD.co_vect_asse_gene import vect_asse_gene
214
215 # -----------------------------------------------------------------------------
216 # vect_elem :
217 from SD.co_vect_elem import vect_elem, \
218                             vect_elem_depl_r, \
219                             vect_elem_pres_r, vect_elem_pres_c, \
220                             vect_elem_temp_r
221
222
223 # -----------------------------------------------------------------------------
224 # corresp_2_mailla :
225 from SD.co_corresp_2_mailla import corresp_2_mailla
226
227 #& MODIF COMMUN  DATE 21/12/2010   AUTEUR ABBAS M.ABBAS 
228 #            CONFIGURATION MANAGEMENT OF EDF VERSION
229 # ======================================================================
230 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
231 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
232 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
233 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
234 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
235 #                                                                       
236 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
237 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
238 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
239 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
240 #                                                                       
241 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
242 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
243 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
244 # ======================================================================
245 # RESPONSABLE ABBAS M.ABBAS
246
247 def C_AFFICHAGE() : return FACT(statut='f',max=1,
248         INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
249         UNITE       = SIMP(statut='f',typ='I',val_min=1),
250        );
251 #& MODIF COMMUN  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
252 #            CONFIGURATION MANAGEMENT OF EDF VERSION
253 # ======================================================================
254 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
255 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
256 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
257 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
258 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
259 #                                                                       
260 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
261 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
262 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
263 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
264 #                                                                       
265 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
266 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
267 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
268 # ======================================================================
269 # RESPONSABLE ABBAS M.ABBAS
270 def C_ARCHIVAGE() : return FACT(statut='d',max=1,
271     regles         = (EXCLUS('PAS_ARCH','LIST_INST','INST'),),
272     LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
273     INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
274     PAS_ARCH       = SIMP(statut='f',typ='I' ),
275     CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
276            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
277               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
278            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
279               PRECISION       =SIMP(statut='o',typ='R',),),
280     DETR_NUME_SUIV = SIMP(statut='f',typ='TXM',into=("OUI",)),
281     CHAM_EXCLU     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
282 );
283 #& MODIF COMMUN  DATE 07/12/2010   AUTEUR GENIAUT S.GENIAUT 
284 #            CONFIGURATION MANAGEMENT OF EDF VERSION
285 # ======================================================================
286 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
287 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
288 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
289 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
290 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
291 #                                                                       
292 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
293 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
294 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
295 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
296 #                                                                       
297 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
298 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
299 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
300 # ======================================================================
301 # RESPONSABLE GENIAUT S.GENIAUT
302 def C_COMP_ELAS( COMMAND ) :  #COMMUN#
303     
304     assert COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC','CALC_G','POST_GP',
305                        'CALC_POINT_MAT','SIMU_POINT_MAT', 'DYNA_NON_LINE','STAT_NON_LINE','CALCUL',)
306     
307     kwargs = {}
308
309 # ----------------------------------------------------------------------------------------------------------------------------------
310 #                            RELATION
311 # ----------------------------------------------------------------------------------------------------------------------------------
312     # commandes pour lesquelles on ne peut pas choisir une relation de type 1d
313     if COMMAND in ('CALC_G','POST_GP','CALC_POINT_MAT','SIMU_POINT_MAT' ):
314         kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS",
315                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS","ELAS_HYPER"))
316
317     # commandes pour lesquelles tout type de relation est possible
318     elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL',):
319         kwargs['RELATION'] = SIMP(statut='o',typ='TXM',defaut="ELAS",
320                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
321                                        "ELAS_VMIS_PUIS","ELAS_HYPER","ELAS_POUTRE_GR","CABLE"))
322
323      # cas particulier de MACR_ASCOUF/ASPIC_CALC : on limite volontairement le choix pour ne pas perturber l'utilisateur
324      # mais theoriquement, toutes les lois disponibles pour CALC_G le sont aussi pour MACR_ASCOUF/ASPIC_CALC
325     elif COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC'):
326         kwargs['RELATION'] = SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC"))
327
328
329 # ----------------------------------------------------------------------------------------------------------------------------------
330 #                            DEFORMATION
331 # ----------------------------------------------------------------------------------------------------------------------------------
332
333     # commandes pour lesquelles on ne peut pas choisir les grandes deformations
334     if COMMAND in ('CALC_POINT_MAT','MACR_ASCOUF_CALC','MACR_ASPIC_CALC'):
335         kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT",))
336
337     # commandes pour lesquelles on peut choisir tout type de deformation
338     elif COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALCUL','POST_GP','CALC_G','SIMU_POINT_MAT', ):
339         kwargs['DEFORMATION'] =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GROT_GDEP",))
340
341 # ----------------------------------------------------------------------------------------------------------------------------------
342 #                            INTEGRATION (RESI_INTE_RELA, ITER_INTE_MAXI, ALGO_INTE)
343 # ----------------------------------------------------------------------------------------------------------------------------------
344
345     kwargs['RESI_INTE_RELA']    =SIMP(statut='f',typ='R',defaut= 1.0E-6)
346     kwargs['ITER_INTE_MAXI']    =SIMP(statut='f',typ='I',defaut= 10 )
347     kwargs['ALGO_INTE']         =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE",))
348
349 # ----------------------------------------------------------------------------------------------------------------------------------
350 #                            LOCALISATION
351 # ----------------------------------------------------------------------------------------------------------------------------------
352
353     # commandes pour lesquelles la localisation n'a pas de sens
354     # 'CALC_POINT_MAT','SIMU_POINT_MAT' 
355
356     # commandes pour lesquelles la localisation est automatique
357     # 'MACR_ASCOUF_CALC','MACR_ASPIC_CALC'
358
359     # commandes pour lesquelles on peut choisir la localisation
360     if COMMAND in ('DYNA_NON_LINE','STAT_NON_LINE','CALC_G','POST_GP','CALCUL'):
361         kwargs['regles'] = (PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),)
362         kwargs['TOUT'] =SIMP(statut='f',typ='TXM',into=("OUI",) )
363         kwargs['GROUP_MA']  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**')
364         kwargs['MAILLE']    =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**')
365
366 # ----------------------------------------------------------------------------------------------------------------------------------
367 #                            DIVERS
368 # ----------------------------------------------------------------------------------------------------------------------------------
369
370     if COMMAND == 'CALC_G':
371         kwargs['CALCUL_CONTRAINTE'] =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") )
372
373
374     mcfact = FACT(statut='f',max='**', **kwargs)
375
376     return mcfact
377 #& MODIF COMMUN  DATE 08/02/2011   AUTEUR PROIX J-M.PROIX 
378 #            CONFIGURATION MANAGEMENT OF EDF VERSION
379 # ======================================================================
380 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
381 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
382 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
383 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
384 # (AT YOUR OPTION) ANY LATER VERSION.
385 #
386 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
387 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
388 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
389 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
390 #
391 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
392 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
393 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
394 # ======================================================================
395 # RESPONSABLE PROIX J.M.PROIX
396 def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
397            RELATION  =SIMP( statut='o',typ='TXM',defaut="ELAS",into=C_RELATION()),
398            b_monox     = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
399                                  fr="SD issue de DEFI_COMPOR",
400                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
401            b_polyx     = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
402                                  fr="SD issue de DEFI_COMPOR",
403                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
404            b_zmat      = BLOC(condition = "RELATION == 'ZMAT' ",
405                                  fr="Comportement de la bibliotheque Zmat",
406                    NB_VARI =SIMP(statut='o',typ='I',max=1),
407                    UNITE =SIMP(statut='o',typ='I',max=1),),
408            b_umat      = BLOC(condition = "RELATION == 'UMAT' ",
409                                  fr="Comportement utilisateur de type UMAT",
410                    NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"),
411                    LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128),
412                         fr="Chemin vers la bibliothèque dynamique définissant le comportement UMAT"),
413                    NOM_ROUTINE = SIMP(statut='o', typ='TXM',
414                         fr="Nom de la routine UMAT dans la bibliothèque"),
415                    ),
416
417 # KITs
418            b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ",
419                             fr="relations de couplage fluage-plasticite",
420                RELATION_KIT    =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(),
421                                  into=(
422                                        "VMIS_CINE_LINE",
423                                        "VMIS_ISOT_TRAC",
424                                        "VMIS_ISOT_LINE",
425                                        "VMIS_ISOT_PUIS",
426                                        "GLRC_DM",
427                                        "GRANGER_FP",
428                                        "GRANGER_FP_INDT",
429                                        "GRANGER_FP_V",
430                                        "BETON_UMLV_FP",
431                                        "ROUSS_PR",
432                                        "BETON_DOUBLE_DP",
433                                        "ENDO_ISOT_BETON",
434                                        "MAZARS"
435                                        ),),
436                    ),
437            b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_H','KIT_HM','KIT_THHM', \
438                                                       'KIT_THH','KIT_THM','KIT_THV']",
439                             fr="lois de comportements thermo-hydro-mecaniques",
440                RELATION_KIT    =SIMP(statut='o',typ='TXM',max=9,validators=NoRepeat(),
441                                  into=(
442 # MECA
443                                        "ELAS",
444                                        "CJS",
445                                        "HUJEUX",
446                                        "CAM_CLAY",
447                                        "BARCELONE",
448                                        "LAIGLE",
449                                        "LETK",
450                                        "DRUCK_PRAGER",
451                                        "DRUCK_PRAG_N_A",
452                                        "VISC_DRUC_PRAG",
453                                        "ELAS_GONF",
454                                        "HOEK_BROWN_EFF",
455                                        "HOEK_BROWN_TOT",
456                                        "MAZARS",
457                                        "ENDO_ISOT_BETON",
458                                        "JOINT_BANDIS",
459                                        "CZM_LIN_REG",
460                                        "CZM_EXP_REG",
461 # THMC
462                                        "GAZ",
463                                        "LIQU_SATU",
464                                        "LIQU_GAZ_ATM",
465                                        "LIQU_VAPE_GAZ",
466                                        "LIQU_AD_GAZ_VAPE",
467                                        "LIQU_AD_GAZ",
468                                        "LIQU_VAPE",
469                                        "LIQU_GAZ",
470 # HYDR
471                                        "HYDR_UTIL",
472                                        "HYDR_VGM",
473                                        "HYDR",
474                                        "HYDR_ENDO",
475                                        ),),
476                                        ),
477            b_kit_meta = BLOC(condition = "RELATION in ('META_LEMA_ANI','META_P_CL_PT_RE','META_P_CL_PT','META_P_CL_RE','META_P_CL',\
478        'META_P_IL_PT_RE','META_P_IL_PT','META_P_IL_RE','META_P_IL','META_P_INL_PT_RE','META_P_INL_PT','META_P_INL_RE','META_P_INL',\
479            'META_V_CL_PT_RE','META_V_CL_PT','META_V_CL_RE','META_V_CL','META_V_IL_PT_RE','META_V_IL_PT','META_V_IL_RE','META_V_IL',\
480            'META_V_INL_PT_RE','META_V_INL_PT','META_V_INL_RE','META_V_INL')",
481                             fr="nombre de phases metallurgiques",
482                RELATION_KIT    =SIMP(statut='o',typ='TXM',max=1,validators=NoRepeat(),
483                                  into=("ACIER","ZIRC"),),
484                                  ),
485
486            DEFORMATION       =SIMP(statut='f',typ='TXM',defaut="PETIT",
487                                    into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GREEN_REAC","GDEF_LOG")),
488            ALGO_C_PLAN       =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
489            RESI_DEBO_MAXI    =SIMP(statut='f',typ='R',fr="Critère d'arret absolu pour assurer la condition de contraintes planes",),
490
491            b_resideborst     =BLOC(condition = " RESI_DEBO_MAXI == None ",
492                                       fr="Critère d'arret relatif pour assurer la condition de contraintes planes",
493                RESI_DEBO_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6),
494                                   ),
495
496            ALGO_1D           =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
497            ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1),
498            RESI_INTE_RELA    =SIMP(statut='f',typ='R',defaut= 1.0E-6),
499            ITER_INTE_MAXI    =SIMP(statut='f',typ='I',defaut= 20 ),
500
501            b_redec_local      = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",
502                                      fr="Nombre de redécoupages internes du pas de temps",
503                ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
504                                      ),
505
506            ALGO_INTE         =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT", 
507                                                               "NEWTON", "NEWTON_RELI", "NEWTON_PERT", "RUNGE_KUTTA",
508                                                               "SPECIFIQUE", "SANS_OBJET")),
509
510            TYPE_MATR_TANG    =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")),
511
512            b_perturb         =BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ",
513                                    fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation",
514                 VALE_PERT_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-5),
515                                   ),
516
517            b_tangsec        = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ",
518                                    fr="Modification evolutive de la matrice tangente/secante",
519                  SEUIL        =SIMP(statut='f',typ='R',defaut= 3. ),
520                  AMPLITUDE    =SIMP(statut='f',typ='R',defaut= 1.5 ),
521                  TAUX_RETOUR  =SIMP(statut='f',typ='R',defaut= 0.05 ),
522                                   ),
523
524            PARM_THETA      =SIMP(statut='f',typ='R',val_min=0.,val_max=1., defaut= 1.),
525            PARM_ALPHA      =SIMP(statut='f',typ='R',defaut= 1. ),
526
527            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
528            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
529            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
530            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
531
532          ) ;
533 #& MODIF COMMUN  DATE 06/12/2010   AUTEUR ABBAS M.ABBAS 
534 #            CONFIGURATION MANAGEMENT OF EDF VERSION
535 # ======================================================================
536 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
537 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
538 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
539 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
540 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
541 #                                                                       
542 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
543 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
544 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
545 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
546 #                                                                       
547 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
548 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
549 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
550 # ======================================================================
551 # RESPONSABLE ABBAS M.ABBAS
552 def C_CONVERGENCE() : return FACT(statut='d',
553            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA','RESI_COMP_RELA'),),
554            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
555              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE',
556                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE','LAGR_REFE'),),
557              FORC_REFE       =SIMP(statut='f',typ='R',min=2,max=2,
558                 fr="Force et Moment de référence pour les éléments de structure."),
559              SIGM_REFE       =SIMP(statut='f',typ='R'),
560              DEPL_REFE       =SIMP(statut='f',typ='R'),
561              EPSI_REFE       =SIMP(statut='f',typ='R'),
562              FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
563              FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
564              FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
565              VARI_REFE       =SIMP(statut='f',typ='R'),
566              LAGR_REFE       =SIMP(statut='f',typ='R'),
567            ),
568            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
569            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
570            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
571            RESI_COMP_RELA  =SIMP(statut='f',typ='R'),
572            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
573            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
574            TYPE            =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")),
575            b_plateau    =BLOC(condition = "TYPE == 'PLATEAU' ",
576
577              PLATEAU_ITER    =SIMP(statut='f',typ='I',defaut=3, val_min =2),
578              PLATEAU_RELA    =SIMP(statut='f',typ='R',defaut=1E-3),
579            ),
580
581
582            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
583          );
584 #& MODIF COMMUN  DATE 08/09/2009   AUTEUR SFAYOLLE S.FAYOLLE 
585 #            CONFIGURATION MANAGEMENT OF EDF VERSION
586 # ======================================================================
587 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
588 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
589 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
590 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
591 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
592 #                                                                       
593 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
594 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
595 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
596 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
597 #                                                                       
598 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
599 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
600 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
601 # ======================================================================
602 # RESPONSABLE SFAYOLLE
603
604 def C_IMPL_EX() : return FACT(statut='d',
605            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1),
606            PREDICTION      =SIMP(statut='f',typ='TXM',defaut="TANGENTE"),
607          );
608 #& MODIF COMMUN  DATE 06/12/2010   AUTEUR ABBAS M.ABBAS 
609 #            CONFIGURATION MANAGEMENT OF EDF VERSION
610 # ======================================================================
611 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
612 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
613 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
614 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
615 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
616 #                                                                       
617 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
618 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
619 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
620 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
621 #                                                                       
622 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
623 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
624 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
625 # ======================================================================
626 # RESPONSABLE ABBAS M.ABBAS
627 def C_INCREMENT() : return FACT(statut='o',
628            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
629                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
630            LIST_INST       =SIMP(statut='o',typ=(listr8_sdaster,list_inst)),
631            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
632            INST_INIT       =SIMP(statut='f',typ='R'),
633            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
634            INST_FIN        =SIMP(statut='f',typ='R'),
635            ERRE_TEMPS      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
636                                  fr="Adaptation temporelle pour les modélisations HM instationnaires",
637                                  ang="Time adaptation for unstationary HM models"),
638            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
639          );
640 #& MODIF COMMUN  DATE 06/12/2010   AUTEUR ABBAS M.ABBAS 
641 #            CONFIGURATION MANAGEMENT OF EDF VERSION
642 # ======================================================================
643 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
644 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
645 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
646 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
647 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
648 #                                                                       
649 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
650 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
651 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
652 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
653 #                                                                       
654 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
655 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
656 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
657 # ======================================================================
658 # RESPONSABLE ABBAS M.ABBAS
659 def C_NEWTON() : return FACT(statut='d',
660            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1,val_min=0),
661            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
662            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
663            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',val_min=0.0),
664            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
665            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0,val_min=0),
666            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
667          );
668 #& MODIF COMMUN  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
669 #            CONFIGURATION MANAGEMENT OF EDF VERSION
670 # ======================================================================
671 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
672 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
673 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
674 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
675 # (AT YOUR OPTION) ANY LATER VERSION.
676 #
677 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
678 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
679 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
680 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
681 #
682 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
683 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
684 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
685 # ======================================================================
686 # RESPONSABLE VABHHTS J.PELLET
687 # ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM
688 # c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD)
689
690 def C_NOM_CHAM_INTO( typ_cham=None ) : #COMMUN# 
691   import types
692 # Liste de tout les champs
693   l_tout_cham = [
694                         "ACCE",
695                         "ACCE_ABSOLU",
696                         "ALPH0_ELGA_EPSP",
697                         "ALPHP_ELGA_ALPH0",
698                         "COMPORTEMENT",
699                         "COMPORTHER",
700                         "CRIT_ELNO",
701                         "DEDE_ELNO",
702                         "DEDE_NOEU",
703                         "DEGE_ELNO",
704                         "DEGE_NOEU",
705                         "DEPL",
706                         "DEPL_ABSOLU",
707                         "DERA_ELGA",
708                         "DERA_ELNO",
709                         "DERA_NOEU",
710                         "DESI_ELNO",
711                         "DESI_NOEU",
712                         "DETE_ELNO",
713                         "DETE_NOEU",
714                         "DISS_ELGA",
715                         "DISS_ELNO",
716                         "DISS_NOEU",
717                         "DURT_ELNO",
718                         "DURT_NOEU",
719                         "ECIN_ELEM",
720                         "EFCA_ELNO",
721                         "EFCA_NOEU",
722                         "EFGE_ELNO",
723                         "EFGE_NOEU",
724                         "ENDO_ELGA",
725                         "ENDO_ELNO",
726                         "ENDO_NOEU",
727                         "ENEL_ELGA",
728                         "ENEL_ELNO",
729                         "ENEL_NOEU",
730                         "EPEQ_ELGA",
731                         "EPEQ_ELNO",
732                         "EPEQ_NOEU",
733                         "EPFD_ELGA",
734                         "EPFD_ELNO",
735                         "EPFD_NOEU",
736                         "EPFP_ELGA",
737                         "EPFP_ELNO",
738                         "EPFP_NOEU",
739                         "EPME_ELGA",
740                         "EPME_ELNO",
741                         "EPMG_ELGA",
742                         "EPMG_ELNO",
743                         "EPMG_NOEU",
744                         "EPMQ_ELGA",
745                         "EPMQ_ELNO",
746                         "EPMQ_NOEU",
747                         "EPOT_ELEM",
748                         "EPSA_ELNO",
749                         "EPSA_NOEU",
750                         "EPSG_ELGA",
751                         "EPSG_ELNO",
752                         "EPSG_NOEU",
753                         "EPSI_ELGA",
754                         "EPSI_ELNO",
755                         "EPSI_NOEU",
756                         "EPSP_ELGA",
757                         "EPSP_ELNO",
758                         "EPSP_NOEU",
759                         "EPTQ_ELNO",
760                         "EPTU_ELNO",
761                         "EPVC_ELGA",
762                         "EPVC_ELNO",
763                         "EPVC_NOEU",
764                         "ERME_ELEM",
765                         "ERME_ELNO",
766                         "ERME_NOEU",
767                         "ERTH_ELEM",
768                         "ERTH_ELNO",
769                         "ERTH_NOEU",
770                         "ERZ1_ELEM",
771                         "ERZ2_ELEM",
772                         "ETOT_ELEM",
773                         "ETOT_ELGA",
774                         "ETOT_ELNO",
775                         "FERRAILLAGE",
776                         "FLHN_ELGA",
777                         "FLUX_ELGA",
778                         "FLUX_ELNO",
779                         "FLUX_NOEU",
780                         "FORC_NODA",
781                         "FSUR_2D",
782                         "FSUR_3D",
783                         "FVOL_2D",
784                         "FVOL_3D",
785                         "GRAD_NOEU_THETA",
786                         "HYDR_ELNO",
787                         "HYDR_NOEU",
788                         "INDL_ELGA",
789                         "INTE_ELNO",
790                         "INTE_NOEU",
791                         "IRRA",
792                         "LANL_ELGA",
793                         "META_ELGA_TEMP",
794                         "META_ELNO",
795                         "META_NOEU",
796                         "MODE_FLAMB",
797                         "PMPB_ELGA",
798                         "PMPB_ELNO",
799                         "PMPB_NOEU",
800                         "PRAC_ELNO",
801                         "PRAC_NOEU",
802                         "PRES",
803                         "PRME_ELNO",
804                         "QIRE_ELEM",
805                         "QIRE_ELNO",
806                         "QIRE_NOEU",
807                         "QIZ1_ELEM",
808                         "QIZ2_ELEM",
809                         "REAC_NODA",
810                         "SICA_ELNO",
811                         "SICA_NOEU",
812                         "SICO_ELNO",
813                         "SICO_NOEU",
814                         "SIEF_ELGA",
815                         "SIEF_ELNO",
816                         "SIEF_NOEU",
817                         "SIEF_SENO_SEGA",
818                         "SIEQ_ELGA",
819                         "SIEQ_ELNO",
820                         "SIEQ_NOEU",
821                         "SIGM_ELNO",
822                         "SIGM_NOEU",
823                         "SING_ELEM",
824                         "SING_ELNO",
825                         "SIPM_ELNO",
826                         "SIPO_ELNO",
827                         "SIPO_NOEU",
828                         "SIRO_ELEM",
829                         "SITQ_ELNO",
830                         "SITU_ELNO",
831                         "SIZ1_ELGA",
832                         "SIZ2_ELGA",
833                         "SOUR_ELGA",
834                         "SPMX_ELGA",
835                         "TEMP",
836                         "THETA",
837                         "VACO_ELNO",
838                         "VAEX_ELGA",
839                         "VAEX_ELNO",
840                         "VAEX_NOEU",
841                         "VALE_CONT",
842                         "VARC_ELGA",
843                         "VARI_ELGA",
844                         "VARI_ELNO",
845                         "VARI_NOEU",
846                         "VATU_ELNO",
847                         "VITE",
848                         "VITE_ABSOLU",
849                         "VITE_VENT",
850                         ]
851 #
852 # Si aucun argument n'est passe, on utilise tous les types de champs possibles
853   if ( typ_cham is None ) :
854     l_ncham = l_tout_cham
855 #
856 # Sinon, on n'utilise que les champs dont le type est passe en argument
857   else :
858     l_typ_cham = []
859     if (type(typ_cham) == types.StringType) :
860       l_typ_cham.append(typ_cham)
861     else :
862       l_typ_cham = typ_cham
863     l_ncham = []
864     for typ in l_typ_cham :
865      for cham in l_tout_cham :
866        if (cham.find(typ) != -1) :
867         if (cham.split('_')[1] == typ):
868            l_ncham.append(cham)
869
870   return tuple(l_ncham)
871 #& MODIF COMMUN  DATE 04/04/2011   AUTEUR PELLET J.PELLET 
872 # RESPONSABLE DESROCHES X.DESROCHES
873 #            CONFIGURATION MANAGEMENT OF EDF VERSION
874 # ======================================================================
875 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
876 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
877 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
878 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
879 # (AT YOUR OPTION) ANY LATER VERSION.
880 #
881 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
882 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
883 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
884 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
885 #
886 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
887 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
888 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
889 # ======================================================================
890 # ce fichier contient la liste des  noms des grandeurs de CODE_ASTER
891 def C_NOM_GRANDEUR() : return  ( #COMMUN#
892 "ABSC_R",
893 "ADRSJEVE",
894 "ADRSJEVN",
895 "CAARPO",
896 "CACABL",
897 "CACOQU",
898 "CADISA",
899 "CADISK",
900 "CADISM",
901 "CAFI_R",
902 "CAGEBA",
903 "CAGEPO",
904 "CAGNBA",
905 "CAGNPO",
906 "CAMASS",
907 "CAORIE",
908 "CAPOUF",
909 "CARCRI",
910 "CASECT",
911 "CHLI_R",
912 "CODE_I",
913 "COEH_F",
914 "COEH_R",
915 "COMPOR",
916 "CORR_R",
917 "CRRU_R",
918 "DBEL_R",
919 "DCEL_I",
920 "DDLI_C",
921 "DDLI_F",
922 "DDLI_R",
923 "DDLM_C",
924 "DDLM_R",
925 "DEPL_C",
926 "DEPL_F",
927 "DEPL_R",
928 "DISS_R",
929 "DOMA_R",
930 "DURT_R",
931 "ENDO_R",
932 "ENER_R",
933 "EPSI_C",
934 "EPSI_F",
935 "EPSI_R",
936 "ERRE_R",
937 "FACY_R",
938 "FELECR",
939 "FER2_R",
940 "FISS_R",
941 "FLAPLA",
942 "FLUN_F",
943 "FLUN_R",
944 "FLUX_F",
945 "FLUX_R",
946 "FORC_C",
947 "FORC_F",
948 "FORC_R",
949 "FREQ_R",
950 "FTHM_F",
951 "FTHM_R",
952 "G",
953 "GEOM_R",
954 "G_DEPL_R",
955 "HARMON",
956 "HYDR_R",
957 "IMPE_C",
958 "IMPE_F",
959 "IMPE_R",
960 "INDL_R",
961 "INFC_R",
962 "INST_R",
963 "INTE_R",
964 "INTLOC",
965 "IRRA_R",
966 "ITECREL",
967 "ITEDEC",
968 "J",
969 "LISTMA",
970 "MACOMP",
971 "MASS_R",
972 "MATE_F",
973 "NBSP_I",
974 "NEUT_F",
975 "NEUT_I",
976 "NEUT_K16",
977 "NEUT_K24",
978 "NEUT_K8",
979 "NEUT_R",
980 "NUMC_I",
981 "NUMMOD",
982 "ONDE_F",
983 "ONDE_R",
984 "PESA_R",
985 "PILO_K",
986 "PILO_R",
987 "POSI",
988 "PREC",
989 "PRES_C",
990 "PRES_F",
991 "PRES_R",
992 "RAYO_F",
993 "RAYO_R",
994 "RCCM_K",
995 "RCCM_R",
996 "RESCREL",
997 "RICE_TRA",
998 "ROTA_R",
999 "SECTION",
1000 "SIEF_C",
1001 "SIEF_R",
1002 "SIZZ_R",
1003 "SOUR_F",
1004 "SOUR_R",
1005 "SPMA_R",
1006 "STAOUDYN",
1007 "TEMP_C",
1008 "TEMP_F",
1009 "TEMP_R",
1010 "THETA",
1011 "VALO_R",
1012 "VANL_R",
1013 "VAR2_R",
1014 "VARI_R",
1015 "VENTCX_F",
1016 "VNOR_C",
1017 "VNOR_F",
1018 "VOISIN",
1019 "WEIBULL",
1020 "XCONTAC",
1021                                  )
1022 #& MODIF COMMUN  DATE 17/01/2011   AUTEUR ABBAS M.ABBAS 
1023 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1024 # ======================================================================
1025 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1026 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1027 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1028 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1029 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1030 #                                                                       
1031 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1032 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1033 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1034 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1035 #                                                                       
1036 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1037 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1038 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1039 # ======================================================================
1040 # RESPONSABLE ABBAS M.ABBAS
1041
1042 def C_OBSERVATION() : return FACT(statut='f',max=99,
1043
1044            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
1045                                    into=("VALE_CONT","FORC_NODA",
1046                                          "DEPL","VITE","ACCE","TEMP",
1047                                          "SIEF_ELGA","VARI_ELGA",                                        
1048                                          "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
1049           
1050            EVAL_CHAM       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1051                                    into=("MIN","MAX","MOY","VALE",),),
1052                                          
1053            NOM_CMP         =SIMP(statut='o',typ='TXM',max=20),
1054            EVAL_CMP        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1055                                    into=("VALE","FORMULE",),),
1056                                    
1057            b_formule       =BLOC(condition="(EVAL_CMP=='FORMULE')",
1058                                    FORMULE = SIMP(statut='o',typ=formule,max=1),
1059                                 ),
1060                                                  
1061            b_cham_no       =BLOC(condition="(NOM_CHAM=='DEPL') or \
1062                                             (NOM_CHAM=='VITE') or \
1063                                             (NOM_CHAM=='ACCE') or \
1064                                             (NOM_CHAM=='TEMP') or \
1065                                             (NOM_CHAM=='FORC_NODA') or \
1066                                             (NOM_CHAM=='VALE_CONT') or \
1067                                             (NOM_CHAM=='DEPL_ABSOLU') or \
1068                                             (NOM_CHAM=='VITE_ABSOLU') or \
1069                                             (NOM_CHAM=='ACCE_ABSOLU')",
1070                                  regles   =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')),
1071                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
1072                                  NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1073                                  GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1074                                  MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1075                                  GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),          
1076                                 ),          
1077
1078                                           
1079            b_cham_elga     =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \
1080                                             (NOM_CHAM=='VARI_ELGA')",
1081                                  regles          =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), 
1082                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),          
1083                                  MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
1084                                  GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), 
1085                                  EVAL_ELGA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1086                                                         into=("MIN","MAX","VALE",),), 
1087                                  b_elga_vale     =BLOC(condition="(EVAL_ELGA=='VALE')",                     
1088                                    POINT           =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'), 
1089                                    SOUS_POINT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),  
1090                                  ),  
1091                                 ),
1092              
1093            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
1094            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
1095            PAS_OBSE        =SIMP(statut='f',typ='I'),
1096            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
1097            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
1098               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
1099            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
1100               PRECISION       =SIMP(statut='o',typ='R',),),
1101        
1102        
1103        );
1104 #& MODIF COMMUN  DATE 29/03/2007   AUTEUR GRANET S.GRANET 
1105 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1106 # ======================================================================
1107 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1108 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1109 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1110 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1111 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1112 #                                                                       
1113 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1114 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1115 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1116 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1117 #                                                                       
1118 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1119 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1120 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1121 # ======================================================================
1122 # ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
1123 def C_PARA_FONCTION() : return  ( #COMMUN#
1124                    "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
1125                    "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
1126                    "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
1127                    "PGAZ","PCAP","PLIQ","PVAP","PAD","VITE","ENDO",
1128                    "NORM","EPAIS","NEUT1","NEUT2",)
1129 #& MODIF COMMUN  DATE 01/02/2011   AUTEUR MASSIN P.MASSIN 
1130 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1131 # ======================================================================
1132 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1133 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1134 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1135 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1136 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1137 #                                                                       
1138 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1139 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1140 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1141 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1142 #                                                                       
1143 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1144 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1145 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1146 # ======================================================================
1147 # RESPONSABLE ABBAS M.ABBAS
1148 def C_PILOTAGE() : return FACT(statut='f',
1149            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
1150            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","DEFORMATION",
1151                                                     "ANA_LIM","SAUT_IMPO","SAUT_LONG_ARC") ),
1152            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
1153            EVOL_PARA       =SIMP(statut='f',typ='TXM',defaut="SANS", into=("SANS","CROISSANT","DECROISSANT") ),
1154            ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
1155            ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
1156            ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
1157            ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
1158            PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
1159            SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
1160            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1161            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
1162            FISSURE         =SIMP(statut='f',typ=fiss_xfem ,validators=NoRepeat(),max='**'),
1163            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
1164            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
1165            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
1166            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
1167            DIRE_PILO       =SIMP(statut='f',typ='TXM',max='**'),
1168          );
1169
1170 #& MODIF COMMUN  DATE 06/12/2010   AUTEUR ABBAS M.ABBAS 
1171 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1172 # ======================================================================
1173 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
1174 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1175 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1176 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1177 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1178 #                                                                       
1179 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1180 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1181 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1182 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1183 #                                                                       
1184 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1185 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1186 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1187 # ======================================================================
1188 # RESPONSABLE ABBAS M.ABBAS
1189 def C_RECH_LINEAIRE() : return FACT(statut='f',
1190            METHODE         =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE","PILOTAGE") ),
1191            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
1192            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3,val_max=999),
1193            ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
1194            PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
1195            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
1196            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
1197            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),
1198          );
1199 #& MODIF COMMUN  DATE 28/02/2011   AUTEUR BARGELLI R.BARGELLINI 
1200 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1201 # ======================================================================
1202 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1203 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
1204 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
1205 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
1206 # (AT YOUR OPTION) ANY LATER VERSION.
1207 #
1208 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
1209 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
1210 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
1211 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
1212 #
1213 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
1214 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
1215 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
1216 # ======================================================================
1217 # RESPONSABLE PROIX J.M.PROIX
1218 def C_RELATION() : return (             "ELAS",            #COMMUN#
1219
1220                                         "ARME",
1221                                         "ASSE_CORN",
1222                                         "BARCELONE",
1223                                         "BETON_DOUBLE_DP",
1224                                         "BETON_RAG",
1225                                         "BETON_REGLE_PR",
1226                                         "BETON_UMLV_FP",
1227                                         "CAM_CLAY",
1228                                         "CJS",
1229                                         "CORR_ACIER",
1230                                         "CZM_EXP",
1231                                         "CZM_EXP_REG",
1232                                         "CZM_FAT_MIX",
1233                                         "CZM_LIN_REG",
1234                                         "CZM_OUV_MIX",
1235                                         "CZM_TAC_MIX",
1236                                         "CZM_TRA_MIX",
1237                                         "DIS_BILI_ELAS",
1238                                         "DIS_CHOC",
1239                                         "DIS_ECRO_CINE",
1240                                         "DIS_GOUJ2E_ELAS",
1241                                         "DIS_GOUJ2E_PLAS",
1242                                         "DIS_GRICRA",
1243                                         "DIS_VISC",
1244                                         "DRUCK_PRAGER",
1245                                         "DRUCK_PRAG_N_A",
1246                                         "ELAS_GONF",
1247                                         "ELAS_HYPER",
1248                                         "ENDO_CARRE",
1249                                         "ENDO_FRAGILE",
1250                                         "ENDO_HETEROGENE",
1251                                         "ENDO_ISOT_BETON",
1252                                         "ENDO_ORTH_BETON",
1253                                         "ENDO_SCALAIRE",
1254                                         "GATT_MONERIE",
1255                                         "GLRC_DAMAGE",
1256                                         "GLRC_DM",
1257                                         "GRANGER_FP",
1258                                         "GRANGER_FP_INDT",
1259                                         "GRANGER_FP_V",
1260                                         "GRAN_IRRA_LOG",
1261                                         "GRILLE_CINE_LINE",
1262                                         "GRILLE_ISOT_LINE",
1263                                         "GRILLE_PINTO_MEN",
1264                                         "HOEK_BROWN",
1265                                         "HOEK_BROWN_EFF",
1266                                         "HOEK_BROWN_TOT",
1267                                         "HUJEUX",
1268                                         "IRRAD3M",
1269                                         "JOINT_BA",
1270                                         "JOINT_BANDIS",
1271                                         "JOINT_MECA_RUPT",
1272                                         "JOINT_MECA_FROT",
1273                                         "KIT_DDI",
1274                                         "KIT_HH",
1275                                         "KIT_H",
1276                                         "KIT_HHM",
1277                                         "KIT_HM",
1278                                         "KIT_THH",
1279                                         "KIT_THHM",
1280                                         "KIT_THM",
1281                                         "KIT_THV",
1282                                         "LABORD_1D",
1283                                         "LAIGLE",
1284                                         "LEMAITRE",
1285                                         "LEMAITRE_IRRA",
1286                                         "LEMA_SEUIL",
1287                                         "LETK",
1288                                         "LMARC_IRRA",
1289                                         "MAZARS",
1290                                         "META_LEMA_ANI",
1291                                         "META_P_CL",
1292                                         "META_P_CL_PT",
1293                                         "META_P_CL_PT_RE",
1294                                         "META_P_CL_RE",
1295                                         "META_P_IL",
1296                                         "META_P_IL_PT",
1297                                         "META_P_IL_PT_RE",
1298                                         "META_P_IL_RE",
1299                                         "META_P_INL",
1300                                         "META_P_INL_PT",
1301                                         "META_P_INL_PT_RE",
1302                                         "META_P_INL_RE",
1303                                         "META_V_CL",
1304                                         "META_V_CL_PT",
1305                                         "META_V_CL_PT_RE",
1306                                         "META_V_CL_RE",
1307                                         "META_V_IL",
1308                                         "META_V_IL_PT",
1309                                         "META_V_IL_PT_RE",
1310                                         "META_V_IL_RE",
1311                                         "META_V_INL",
1312                                         "META_V_INL_PT",
1313                                         "META_V_INL_PT_RE",
1314                                         "META_V_INL_RE",
1315                                         "MONOCRISTAL",
1316                                         "MULTIFIBRE",
1317                                         "NORTON_HOFF",
1318                                         "PINTO_MENEGOTTO",
1319                                         "POLYCRISTAL",
1320                                         "ROUSSELIER",
1321                                         "ROUSS_PR",
1322                                         "ROUSS_VISC",
1323                                         "RUPT_FRAG",
1324                                         "SANS",
1325                                         "VENDOCHAB",
1326                                         "VISC_ENDO_LEMA",
1327                                         "VISCOCHAB",
1328                                         "VISC_CIN1_CHAB",
1329                                         "VISC_CIN2_CHAB",
1330                                         "VISC_CIN2_MEMO",
1331                                         "VISC_DRUC_PRAG",
1332                                         "VISC_IRRA_LOG",
1333                                         "VISC_ISOT_LINE",
1334                                         "VISC_ISOT_TRAC",
1335                                         "VISC_TAHERI",
1336                                         "VMIS_ASYM_LINE",
1337                                         "VMIS_CIN1_CHAB",
1338                                         "VMIS_CIN2_CHAB",
1339                                         "VMIS_CIN2_MEMO",
1340                                         "VMIS_CINE_LINE",
1341                                         "VMIS_ECMI_LINE",
1342                                         "VMIS_ECMI_TRAC",
1343                                         "VMIS_ISOT_LINE",
1344                                         "VMIS_ISOT_PUIS",
1345                                         "VMIS_ISOT_TRAC",
1346                                         "VMIS_POU_FLEJOU",
1347                                         "VMIS_POU_LINE",
1348                                         "ZMAT",
1349                                         "UMAT",
1350                                      )
1351 #& MODIF COMMUN  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
1352 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1353 # ======================================================================
1354 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1355 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1356 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1357 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1358 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1359 #                                                                       
1360 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1361 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1362 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1363 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1364 #                                                                       
1365 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1366 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1367 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1368 # ======================================================================
1369 # RESPONSABLE REZETTE C.REZETTE
1370 def C_SOLVEUR() : return FACT(statut='d',
1371            METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI","PETSC") ),
1372 # --------------------------------------------------------------------------------------------------------------------------------
1373            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
1374              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
1375            ),
1376 # --------------------------------------------------------------------------------------------------------------------------------
1377            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
1378              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
1379            ),
1380 # --------------------------------------------------------------------------------------------------------------------------------
1381            b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' or METHODE=='FETI' ",
1382                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
1383              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
1384              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
1385            ),
1386 # --------------------------------------------------------------------------------------------------------------------------------
1387            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
1388              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP"),defaut="LDLT_INC" ),
1389              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
1390                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
1391                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
1392                ),
1393              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
1394                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
1395                ),
1396              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
1397              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
1398            ),
1399 # --------------------------------------------------------------------------------------------------------------------------------
1400            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
1401              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
1402              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
1403              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
1404              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
1405              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
1406              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
1407              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
1408              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1409              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),            
1410              FILTRAGE_MATRICE =SIMP(statut='f',typ='R',defaut=-1.0,),
1411              MIXER_PRECISION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1412              MATR_DISTRIBUEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1413              ),
1414 # --------------------------------------------------------------------------------------------------------------------------------
1415            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
1416              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
1417              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
1418              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
1419              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
1420              REAC_RESI       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
1421              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
1422              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
1423              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
1424              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
1425              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
1426              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1427              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
1428              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
1429              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
1430              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
1431              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1432            ),
1433 # --------------------------------------------------------------------------------------------------------------------------------
1434            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
1435              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
1436              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
1437              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
1438                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
1439                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
1440                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
1441              ),
1442              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
1443                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
1444                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
1445              ),
1446              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
1447                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
1448                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
1449              ),
1450              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
1451              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
1452            ),
1453 # --------------------------------------------------------------------------------------------------------------------------------
1454            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1455          );
1456 #& MODIF COMMUN  DATE 17/01/2011   AUTEUR ABBAS M.ABBAS 
1457 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1458 # ======================================================================
1459 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1460 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1461 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1462 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1463 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1464 #                                                                       
1465 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1466 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1467 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1468 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1469 #                                                                       
1470 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1471 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1472 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1473 # ======================================================================
1474 # RESPONSABLE ABBAS M.ABBAS
1475
1476 def C_SUIVI_DDL() : return FACT(statut='f',max=4,
1477
1478            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
1479                                    into=("DEPL","VITE","ACCE",
1480                                          "FORC_NODA",
1481                                          "SIEF_ELGA","VARI_ELGA",                                        
1482                                          "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
1483           
1484            EVAL_CHAM       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1485                                    into=("MIN","MAX","MOY","VALE",),),
1486                                          
1487            NOM_CMP         =SIMP(statut='o',typ='TXM',max=20),
1488            EVAL_CMP        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1489                                    into=("VALE","FORMULE",),),
1490                                    
1491            b_formule       =BLOC(condition="(EVAL_CMP=='FORMULE')",
1492                                    FORMULE = SIMP(statut='o',typ=formule,max=1),
1493                                 ),                 
1494            
1495            b_cham_no       =BLOC(condition="(NOM_CHAM=='DEPL') or \
1496                                             (NOM_CHAM=='VITE') or \
1497                                             (NOM_CHAM=='ACCE') or \
1498                                             (NOM_CHAM=='FORC_NODA') or \
1499                                             (NOM_CHAM=='VALE_CONT') or \
1500                                             (NOM_CHAM=='DEPL_ABSOLU') or \
1501                                             (NOM_CHAM=='VITE_ABSOLU') or \
1502                                             (NOM_CHAM=='ACCE_ABSOLU')",                                 
1503                                  regles   =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')),
1504                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
1505                                  NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1506                                  GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1507                                  MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1508                                  GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),   
1509                                 ), 
1510                                           
1511            b_cham_elga     =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \
1512                                             (NOM_CHAM=='VARI_ELGA')",
1513                                  regles          =(UN_PARMI('GROUP_MA','MAILLE','TOUT')), 
1514                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),          
1515                                  MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
1516                                  GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), 
1517                                  EVAL_ELGA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
1518                                                         into=("MIN","MAX","VALE",),), 
1519                                  b_elga_vale     =BLOC(condition="(EVAL_ELGA=='VALE')",                     
1520                                    POINT           =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'), 
1521                                    SOUS_POINT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),  
1522                                  ),  
1523                                 ), 
1524              
1525            TITRE           =  SIMP(statut='f',typ='TXM',max=3),     
1526        
1527        
1528        );
1529 #& MODIF COMMUN  DATE 09/11/2010   AUTEUR GNICOLAS G.NICOLAS 
1530 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1531 # ======================================================================
1532 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1533 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1534 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1535 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1536 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1537 #                                                                       
1538 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1539 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1540 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1541 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1542 #                                                                       
1543 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1544 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1545 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1546 # ======================================================================
1547 # RESPONSABLE GNICOLAS G.NICOLAS
1548 #
1549 # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
1550 def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN#
1551 # Si aucun argument n'est passe, on utilise tous les types de champs possibles
1552   if ( type_cham is None ) :
1553     l_cham = ["ELEM", "ELNO", "ELGA", "CART", "NOEU"]
1554 # Sinon, on n'utilise que les types passes en argument
1555   else :
1556     l_cham = []
1557     for typ in type_cham :
1558       l_cham.append(typ)
1559 #
1560   l = []
1561   for gd in C_NOM_GRANDEUR() :
1562     for typ in l_cham :
1563       l.append(typ+"_"+gd)
1564 #
1565   return tuple(l)
1566
1567 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
1568 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1569 # ======================================================================
1570 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1571 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
1572 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
1573 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
1574 # (AT YOUR OPTION) ANY LATER VERSION.
1575 #
1576 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
1577 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
1578 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
1579 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
1580 #
1581 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
1582 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
1583 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
1584 # ======================================================================
1585 # RESPONSABLE FLEJOU J-L.FLEJOU
1586 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
1587    fr="Affectation de caractéristiques à des éléments de structure",
1588    reentrant='n',
1589    UIinfo ={"groupes":("Modélisation",)},
1590    regles = (AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
1591                          'GRILLE','MULTIFIBRE','RIGI_PARASOL'),
1592              PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'),
1593              EXCLUS('DISCRET','DISCRET_2D'),),
1594    MODELE = SIMP(statut='o',typ=modele_sdaster ),
1595    INFO   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
1596    VERIF  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
1597
1598 #  ============================================================================
1599    POUTRE               = FACT(statut= 'f',max= '**',
1600       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
1601       MAILLE               = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
1602       GROUP_MA             = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
1603       SECTION              = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
1604       PREC_AIRE            = SIMP(statut= 'f',typ= 'R',defaut= 0.01),
1605       PREC_INERTIE         = SIMP(statut= 'f',typ= 'R',defaut= 0.1),
1606       b_generale           = BLOC(condition = "SECTION == 'GENERALE'",
1607          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
1608          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
1609             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 4 ,max= 15,
1610                                        fr= "A,IY,IZ,JX sont des paramètres obligatoires",
1611                                        into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
1612                                              "JG","IYR2","IZR2","AI") ),
1613             VALE                    = SIMP(statut= 'o',typ= 'R',min= 4 ,max= 15), ),
1614          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
1615             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 8 ,max= 30,
1616                                        fr= "A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires",
1617                                        into= ("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
1618                                              "RZ1","RT1","JG1","IYR21","IZR21","AI1",
1619                                              "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
1620                                              "RZ2","RT2","JG2","IYR22","IZR22","AI2") ),
1621             VALE                 = SIMP(statut= 'o',typ= 'R',min= 8 ,max= 30),),
1622       ),
1623       b_rectangle          = BLOC(condition = "SECTION == 'RECTANGLE'",
1624          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
1625          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
1626             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 1 ,max= 4,
1627                                        into= ("H","EP", "HY","HZ","EPY","EPZ") ),
1628             VALE                 = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4), ),
1629          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
1630             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 2 ,max= 8,
1631                                        into= ("H1","HZ1","HY1","EP1","EPY1","EPZ1",
1632                                           "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
1633             VALE                 = SIMP(statut= 'o',typ= 'R',min= 2 ,max= 8), ),
1634          b_affine             = BLOC(condition = "VARI_SECT == 'AFFINE'",
1635             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 3 ,max= 6,
1636                                        into= ("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ),
1637             VALE                 = SIMP(statut= 'o',typ= 'R',min= 3 ,max= 6), ),
1638       ),
1639       b_cercle             = BLOC(condition = "SECTION == 'CERCLE'",
1640          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
1641          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
1642             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 1 ,max= 2,
1643                                        fr= "R est un paramètre obligatoire",
1644                                        into= ("R","EP") ),
1645             VALE                 = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 2), ),
1646          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
1647             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 2 ,max= 4,
1648                                        fr= "R1, R2 sont des paramètres obligatoires",
1649                                        into= ("R1","R2","EP1","EP2") ),
1650             VALE                 = SIMP(statut= 'o',typ= 'R',min= 2 ,max= 4), ),
1651          MODI_METRIQUE     = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
1652          FCX               = SIMP(statut= 'f',typ= (fonction_sdaster,nappe_sdaster,formule) ),
1653          TUYAU_NSEC        = SIMP(statut= 'f',typ= 'I',val_max= 32,defaut= 16),
1654          TUYAU_NCOU        = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
1655       ),
1656    ),
1657
1658 #  ============================================================================
1659    BARRE                = FACT(statut='f',max='**',
1660       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
1661       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1662       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1663       SECTION              = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
1664       b_generale           = BLOC(condition = "SECTION=='GENERALE'",
1665          CARA                 = SIMP(statut='o',typ='TXM',into=("A",) ),
1666          VALE                 = SIMP(statut='o',typ='R',min=1,max=1 ), ),
1667       b_rectangle          = BLOC(condition = "SECTION=='RECTANGLE'",
1668          CARA                 = SIMP(statut='o',typ='TXM',
1669                                     into=("H","EP","HZ","HY","EPY","EPZ"),
1670                                     validators=NoRepeat(),min=1,max=4 ),
1671          VALE                 = SIMP(statut='o',typ='R',min=1,max=4 ), ),
1672       b_cercle             =  BLOC(condition = "SECTION=='CERCLE'",
1673          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ),
1674          VALE                 = SIMP(statut='o',typ='R',min=1,max=2 ), ),
1675       FCX                  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1676    ),
1677
1678 #  ============================================================================
1679    COQUE                = FACT(statut='f',max='**',
1680       regles               = (UN_PARMI('MAILLE','GROUP_MA' ),
1681                               PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),
1682                               AU_MOINS_UN('EPAIS','EPAIS_F',),
1683                               PRESENT_ABSENT('EPAIS','EPAIS_F',),
1684                               EXCLUS('ANGL_REP','VECTEUR'),),
1685       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1686       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1687       EPAIS                = SIMP(statut='f',typ='R' ),
1688       EPAIS_F              = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),
1689       ANGL_REP             = SIMP(statut='f',typ='R',min=2,max=2),
1690       VECTEUR              = SIMP(statut='f',typ='R',min=3,max=3),
1691       A_CIS                = SIMP(statut='f',typ='R',defaut= 0.8333333E0),
1692       COEF_RIGI_DRZ        = SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
1693       COQUE_NCOU           = SIMP(statut='f',typ='I',defaut= 1 ),
1694       EXCENTREMENT         = SIMP(statut='f',typ='R' ),
1695       INER_ROTA            = SIMP(statut='f',typ='TXM',into=("OUI",) ),
1696       MODI_METRIQUE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1697    ),
1698
1699 #  ============================================================================
1700    CABLE                = FACT(statut='f',max='**',
1701       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
1702       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1703       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1704       N_INIT               = SIMP(statut='f',typ='R',defaut= 5000. ),
1705       SECTION              = SIMP(statut='f',typ='R' ),
1706       FCX                  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1707    ),
1708
1709 #  ============================================================================
1710    DISCRET              = FACT(statut='f',max='**',
1711       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
1712       AMOR_HYST            = SIMP(statut='f',typ='R' ),
1713
1714       SYME                 = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
1715       b_SYME_OUI           = BLOC(condition="SYME=='OUI'",
1716          fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1717          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
1718             into=("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
1719                   "M_T_D_N",            "M_TR_D_N",             "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
1720                   "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
1721          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
1722          b_AK_T_D_N            = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))",
1723             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
1724             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1725                                     UN_PARMI('VALE','VALE_F'),),
1726             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1727             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1728             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1729             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1730             VALE                 = SIMP(statut='f',typ='R',min=3 ,max=3 ),
1731             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1732          b_AK_T_D_L            = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))",
1733             fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)",
1734             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1735                                     UN_PARMI('VALE','VALE_F'),),
1736             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1737             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1738             VALE                 = SIMP(statut='f',typ='R',min=3 ,max=3 ),
1739             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1740          b_AK_TR_D_N           = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))",
1741             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
1742             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1743                                     UN_PARMI('VALE','VALE_F'),),
1744             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1745             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1746             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1747             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1748             VALE                 = SIMP(statut='f',typ='R',min=6 ,max=6 ),
1749             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1750          b_AK_TR_D_L           = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))",
1751             fr="SEGMENT: 6 valeurs (triangulaire supérieure par colonne)",
1752             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1753                                     UN_PARMI('VALE','VALE_F'),),
1754             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1755             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1756             VALE                 = SIMP(statut='f',typ='R',min=6 ,max=6 ),
1757             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1758          b_MAK_T_N              = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
1759             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
1760             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1761                                     UN_PARMI('VALE','VALE_F'),),
1762             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1763             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1764             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1765             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1766             VALE                 = SIMP(statut='f',typ='R',min=6 ,max=6 ),
1767             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1768          b_MAK_T_L              = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
1769             fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)",
1770             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1771                                     UN_PARMI('VALE','VALE_F'),),
1772             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1773             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1774             VALE                 = SIMP(statut='f',typ='R',min=21,max=21),
1775             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1776          b_MAK_TR_N             = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
1777             fr="NOEUD: 21 valeurs (triangulaire supérieure par colonne)",
1778             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1779                                     UN_PARMI('VALE','VALE_F'),),
1780             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1781             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1782             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1783             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1784             VALE                 = SIMP(statut='f',typ='R',min=21,max=21),
1785             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1786          b_MAK_TR_L             = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
1787             fr="SEGMENT: 78 valeurs (triangulaire supérieure par colonne)",
1788             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1789                                     UN_PARMI('VALE','VALE_F'),),
1790             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1791             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1792             VALE                 = SIMP(statut='f',typ='R',min=78,max=78),
1793             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
1794          #  Affection des caractéristiques de MASSE
1795          b_M_T_D_N           = BLOC(condition = "(CARA=='M_T_D_N')",
1796             fr="NOEUD: 1 valeur de masse",
1797             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1798                                     UN_PARMI('VALE','VALE_F'),),
1799             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1800             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1801             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1802             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1803             VALE                 = SIMP(statut='f',typ='R',min=1 ,max=1 ),
1804             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
1805          b_M_TR_D_N           = BLOC(condition = "(CARA=='M_TR_D_N')",
1806             fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentrement",
1807             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1808                                     UN_PARMI('VALE','VALE_F'),),
1809             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1810             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1811             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1812             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1813             VALE                 = SIMP(statut='f',typ='R',min=10,max=10),
1814             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
1815       ),
1816       #     éléments à matrice non-symétrique
1817       #        b_MAK_T_N_NS       'K_T_N'     'A_T_N'    'M_T_N'
1818       #        b_MAK_T_L_NS       'K_T_L'     'A_T_L'    'M_T_L'
1819       #        b_MAK_TR_N_NS      'K_TR_N'    'A_TR_N'   'M_TR_N'
1820       #        b_MAK_TR_L_NS      'K_TR_L'    'A_TR_L'   'M_TR_L'
1821       b_SYME_NON           = BLOC(condition="SYME=='NON'",
1822          fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1823          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
1824             into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
1825                   "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
1826                   "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
1827          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE
1828          b_MAK_T_N_NS           = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
1829             fr="NOEUD: 9 valeurs (matrice pleine par colonne)",
1830             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1831                                     UN_PARMI('VALE','VALE_F'),),
1832             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1833             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1834             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1835             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1836             VALE                 = SIMP(statut='f',typ='R',min=9 ,max=9 ),
1837             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
1838          b_MAK_T_L_NS           = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
1839             fr="SEGMENT: 36 valeurs (matrice pleine par colonne)",
1840             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1841                                     UN_PARMI('VALE','VALE_F'),),
1842             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1843             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1844             VALE                 = SIMP(statut='f',typ='R',min=36,max=36),
1845             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
1846          b_MAK_TR_N_NS          = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
1847             fr="NOEUD: 36 valeurs (matrice pleine par colonne)",
1848             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1849                                     UN_PARMI('VALE','VALE_F'),),
1850             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1851             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1852             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1853             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1854             VALE                 = SIMP(statut='f',typ='R',min=36,max=36),
1855             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
1856          b_MAK_TR_L_NS          = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
1857             fr="SEGMENT: 144 valeurs (matrice pleine par colonne)",
1858             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1859                                     UN_PARMI('VALE','VALE_F'),),
1860             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1861             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1862             VALE                 = SIMP(statut='f',typ='R',min=144,max=144),
1863             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),),
1864       ),
1865    ),
1866 #  ============================================================================
1867    DISCRET_2D           = FACT(statut='f',max='**',
1868       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
1869       AMOR_HYST            = SIMP(statut='f',typ='R' ),
1870       SYME                 = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
1871       b_SYME_OUI           = BLOC(condition="SYME=='OUI'",
1872          fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1873          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
1874             into=("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
1875                   "M_T_D_N",            "M_TR_D_N",             "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
1876                   "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
1877          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
1878          b_AK_T_D_N            = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))",
1879             fr="NOEUD: 2 valeurs (triangulaire supérieure par colonne)",
1880             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1881                                     UN_PARMI('VALE','VALE_F'),),
1882             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1883             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1884             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1885             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1886             VALE                 = SIMP(statut='f',typ='R',min=2 ,max=2 ),
1887             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
1888          b_AK_T_D_L            = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))",
1889             fr="SEGMENT: 2 valeurs (triangulaire supérieure par colonne)",
1890             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1891                                     UN_PARMI('VALE','VALE_F'),),
1892             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1893             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1894             VALE                 = SIMP(statut='f',typ='R',min=2 ,max=2 ),
1895             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
1896          b_AK_TR_D_N           = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))",
1897             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
1898             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1899                                     UN_PARMI('VALE','VALE_F'),),
1900             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1901             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1902             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1903             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1904             VALE                 = SIMP(statut='f',typ='R',min=3 ,max=3 ),
1905             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1906          b_AK_TR_D_L           = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))",
1907             fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)",
1908             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1909                                     UN_PARMI('VALE','VALE_F'),),
1910             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1911             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1912             VALE                 = SIMP(statut='f',typ='R',min=3 ,max=3 ),
1913             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1914          b_MAK_T_N              = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
1915             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
1916             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1917                                     UN_PARMI('VALE','VALE_F'),),
1918             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1919             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1920             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1921             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1922             VALE                 = SIMP(statut='f',typ='R',min=3 ,max=3 ),
1923             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1924          b_MAK_T_L              = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
1925             fr="SEGMENT: 10 valeurs (triangulaire supérieure par colonne)",
1926             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1927                                     UN_PARMI('VALE','VALE_F'),),
1928             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1929             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1930             VALE                 = SIMP(statut='f',typ='R',min=10,max=10),
1931             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
1932          b_MAK_TR_N             = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
1933             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
1934             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1935                                     UN_PARMI('VALE','VALE_F'),),
1936             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1937             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1938             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1939             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1940             VALE                 = SIMP(statut='f',typ='R',min=6 ,max=6),
1941             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1942          b_MAK_TR_L             = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
1943             fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)",
1944             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1945                                     UN_PARMI('VALE','VALE_F'),),
1946             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1947             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1948             VALE                 = SIMP(statut='f',typ='R',min=21,max=21),
1949             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1950          #  Affection des caractéristiques de MASSE
1951          b_M_T_D_N            = BLOC(condition = "(CARA=='M_T_D_N')",
1952             fr="NOEUD: 1 valeur de masse",
1953             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1954                                     UN_PARMI('VALE','VALE_F'),),
1955             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1956             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1957             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1958             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1959             VALE                 = SIMP(statut='f',typ='R',min=1 ,max=1 ),
1960             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
1961          b_M_TR_D_N           = BLOC(condition = "(CARA=='M_TR_D_N')",
1962             fr="NOEUD: 1 valeur de masse (m), 1 valeur d'inertie (Izz), 2 composantes du vecteur d'excentrement",
1963             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1964                                     UN_PARMI('VALE','VALE_F'),),
1965             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1966             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1967             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1968             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1969             VALE                 = SIMP(statut='f',typ='R',min=4 ,max=4 ),
1970             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
1971       ),
1972       #     éléments à matrice non-symétrique
1973       #        b_MAK_T_N_NS       'K_T_N'     'A_T_N'    'M_T_N'
1974       #        b_MAK_T_L_NS       'K_T_L'     'A_T_L'    'M_T_L'
1975       #        b_MAK_TR_N_NS      'K_TR_N'    'A_TR_N'   'M_TR_N'
1976       #        b_MAK_TR_L_NS      'K_TR_L'    'A_TR_L'   'M_TR_L'
1977       b_SYME_NON           = BLOC(condition="SYME=='NON'",
1978          fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1979          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
1980             into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
1981                   "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
1982                   "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
1983          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE
1984          b_MAK_T_N_NS           = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
1985             fr="NOEUD: 4 valeurs (matrice pleine par colonne)",
1986             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1987                                     UN_PARMI('VALE','VALE_F'),),
1988             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1989             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1990             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1991             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1992             VALE                 = SIMP(statut='f',typ='R',min=4 ,max=4 ),
1993             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
1994          b_MAK_T_L_NS           = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
1995             fr="SEGMENT: 16 valeurs (matrice pleine par colonne)",
1996             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
1997                                     UN_PARMI('VALE','VALE_F'),),
1998             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1999             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2000             VALE                 = SIMP(statut='f',typ='R',min=16,max=16),
2001             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),),
2002          b_MAK_TR_N_NS          = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
2003             fr="NOEUD: 9 valeurs (matrice pleine par colonne)",
2004             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2005                                     UN_PARMI('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=9 ,max=9),
2011             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
2012          b_MAK_TR_L_NS          = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
2013             fr="SEGMENT: 36 valeurs (matrice pleine par colonne)",
2014             regles               = (UN_PARMI('MAILLE','GROUP_MA'),
2015                                     UN_PARMI('VALE','VALE_F'),),
2016             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2017             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2018             VALE                 = SIMP(statut='f',typ='R',min=36,max=36),
2019             VALE_F               = SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
2020       ),
2021    ),
2022 #  ============================================================================
2023    ORIENTATION          = FACT(statut='f',max='**',
2024       regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
2025       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2026       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2027       NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2028       GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2029       CARA                 = SIMP(statut='o',typ='TXM',
2030                                  into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
2031       VALE                 = SIMP(statut='o',typ='R',max='**'),
2032       PRECISION            = SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
2033       CRITERE              = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2034    ),
2035
2036 # ============================================================================
2037    DEFI_ARC             = FACT(statut='f',max='**',
2038       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
2039                               UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
2040                                        'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
2041                               PRESENT_PRESENT('ORIE_ARC','RAYON'),
2042                               EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
2043                               EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
2044                               EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
2045                               EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
2046                               PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
2047                               PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
2048       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2049       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2050       ORIE_ARC             = SIMP(statut='f',typ='R'),
2051       CENTRE               = SIMP(statut='f',typ='R',max='**'),
2052       NOEUD_CENTRE         = SIMP(statut='f',typ=no),
2053       GROUP_NO_CENTRE      = SIMP(statut='f',typ=grno),
2054       POIN_TANG            = SIMP(statut='f',typ='R',max='**'),
2055       NOEUD_POIN_TANG      = SIMP(statut='f',typ=no),
2056       GROUP_NO_POIN_TG     = SIMP(statut='f',typ=grno),
2057       RAYON                = SIMP(statut='f',typ='R'),
2058       COEF_FLEX            = SIMP(statut='f',typ='R'),
2059       INDI_SIGM            = SIMP(statut='f',typ='R'),
2060       COEF_FLEX_XY         = SIMP(statut='f',typ='R'),
2061       INDI_SIGM_XY         = SIMP(statut='f',typ='R'),
2062       COEF_FLEX_XZ         = SIMP(statut='f',typ='R'),
2063       INDI_SIGM_XZ         = SIMP(statut='f',typ='R'),
2064       PRECISION            = SIMP(statut='f',typ='R',defaut= 1.0E-3),
2065       CRITERE              = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2066    ),
2067
2068 #============================================================================
2069    MASSIF               = FACT(statut='f',max='**',
2070       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
2071                               UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'),
2072                               EXCLUS('ANGL_REP','ANGL_EULER'),
2073                               EXCLUS('ANGL_REP','ANGL_AXE'),
2074                               EXCLUS('ANGL_REP','ORIG_AXE'),
2075                               PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
2076       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2077       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2078       ANGL_REP             = SIMP(statut='f',typ='R',max=3),
2079       ANGL_EULER           = SIMP(statut='f',typ='R',min=3,max=3),
2080       ANGL_AXE             = SIMP(statut='f',typ='R',max=2),
2081       ORIG_AXE             = SIMP(statut='f',typ='R',max=3),
2082    ),
2083
2084 #  ============================================================================
2085    POUTRE_FLUI          = FACT(statut='f',max='**',
2086       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
2087       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2088       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2089       B_T                  = SIMP(statut='o',typ='R'),
2090       B_N                  = SIMP(statut='o',typ='R'),
2091       B_TN                 = SIMP(statut='o',typ='R',defaut= 0.E+0 ),
2092       A_FLUI               = SIMP(statut='o',typ='R'),
2093       A_CELL               = SIMP(statut='o',typ='R'),
2094       COEF_ECHELLE         = SIMP(statut='o',typ='R'),
2095    ),
2096
2097 #  ============================================================================
2098    GRILLE               = FACT(statut='f',max='**',
2099       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
2100                               EXCLUS('ANGL_REP','ORIG_AXE'),
2101                               ENSEMBLE('ORIG_AXE','AXE')),
2102       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2103       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2104       SECTION              = SIMP(statut='o',typ='R'),
2105       ANGL_REP             = SIMP(statut='f',typ='R',max=2),
2106       EXCENTREMENT         = SIMP(statut='f',typ='R'),
2107       ORIG_AXE             = SIMP(statut='f',typ='R',max='**'),
2108       AXE                  = SIMP(statut='f',typ='R',max='**'),
2109       COEF_RIGI_DRZ        = SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
2110       GRILLE_NCOU          = SIMP(statut='f',typ='I',defaut= 1,),
2111    ),
2112
2113 #============================================================================
2114    RIGI_PARASOL         = FACT(statut='f',max='**',
2115       regles               = (UN_PARMI('COEF_GROUP','FONC_GROUP'),
2116                               UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
2117                               EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),),
2118       GROUP_MA             = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**',
2119          fr="Surface servant à répartir les caractéristiques des discrets"),
2120       GROUP_MA_POI1        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1,
2121          fr="Mailles de type point correspondant aux discrets"),
2122       GROUP_MA_SEG2        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1,
2123          fr="Mailles de type seg2 correspondant aux discrets"),
2124       FONC_GROUP           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2125       COEF_GROUP           = SIMP(statut='f',typ='R',max='**'),
2126       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
2127       CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,
2128                                  into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
2129                                        "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L"),
2130                                  fr="Choix des types de discrets du tapis de ressorts." ),
2131       b_cara= BLOC(condition =""" (CARA in ["K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
2132                                             "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L"]) or \
2133                                   (len(CARA)==2 and CARA[0][2:]==CARA[1][2:]) """,
2134                    fr="Valeurs pour les discrets du tapis de ressorts.",
2135          VALE = SIMP(statut='o',typ='R',max='**',
2136               fr="Valeurs pour les discrets du tapis de ressorts.",),
2137       ),
2138       GROUP_NO_CENTRE      = SIMP(statut='f',typ=grno),
2139       NOEUD_CENTRE         = SIMP(statut='f',typ=no),
2140       COOR_CENTRE          = SIMP(statut='f',typ='R',min=2,max=3),
2141       EUROPLEXUS           = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
2142       UNITE                = SIMP(statut='f',typ='I',val_min=1),
2143    ),
2144
2145 #============================================================================
2146    RIGI_MISS_3D         = FACT(statut='f',max='**',
2147       GROUP_MA_POI1        = SIMP(statut='o',typ=grma,max=1),
2148       GROUP_MA_SEG2        = SIMP(statut='f',typ=grma,max=1),
2149       FREQ_EXTR            = SIMP(statut='o',typ='R',max=1),
2150       UNITE_RESU_IMPE      = SIMP(statut='f',typ='I',defaut=30),
2151    ),
2152
2153 #============================================================================
2154    GEOM_FIBRE           = SIMP(statut='f',max=1,typ=gfibre_sdaster,
2155       fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"),
2156    MULTIFIBRE           = FACT(statut='f',max='**',
2157       regles               = (AU_MOINS_UN('GROUP_MA','MAILLE'),),
2158       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2159       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2160       GROUP_FIBRE          = SIMP(statut='o',typ='TXM',max='**'),
2161    ),
2162 );
2163 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
2164 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2165 # ======================================================================
2166 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2167 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2168 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2169 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2170 # (AT YOUR OPTION) ANY LATER VERSION.
2171 #
2172 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2173 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2174 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2175 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2176 #
2177 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2178 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2179 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2180 # ======================================================================
2181 # RESPONSABLE None
2182 AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
2183                     fr="Affectation de charges et conditions aux limites acoustiques constantes",
2184                     reentrant='n',
2185             UIinfo={"groupes":("Chargements","Acoustique",)},
2186          regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
2187          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2188          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2189          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées",
2190                                into=('DUALISATION',),defaut='DUALISATION',),
2191                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
2192          PRES_IMPO       =FACT(statut='f',max='**',
2193            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2194            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2195            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2196            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2197            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2198            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2199            PRES            =SIMP(statut='o',typ='C' ),
2200          ),
2201          VITE_FACE       =FACT(statut='f',max='**',
2202              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2203                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2204            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2205            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2206            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2207            VNOR            =SIMP(statut='o',typ='C' ),
2208          ),
2209          IMPE_FACE       =FACT(statut='f',max='**',
2210              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2211                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2212            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2213            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2214            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2215            IMPE            =SIMP(statut='o',typ='C' ),
2216          ),
2217          LIAISON_UNIF    =FACT(statut='f',max='**',
2218            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
2219            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2220            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2221            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2222            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2223            DDL             =SIMP(statut='o',typ='TXM',max='**'),
2224          ),
2225 )  ;
2226 #& MODIF COMMANDE  DATE 01/03/2011   AUTEUR PELLET J.PELLET 
2227 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2228 # ======================================================================
2229 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2230 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2231 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2232 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2233 # (AT YOUR OPTION) ANY LATER VERSION.
2234 #
2235 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2236 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2237 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2238 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2239 #
2240 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2241 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2242 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2243 # ======================================================================
2244 # RESPONSABLE PELLET J.PELLET
2245 def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_IMPO,**args):
2246   if MECA_IMPO != None  : return char_cine_meca
2247   if THER_IMPO != None  : return char_cine_ther
2248   if ACOU_IMPO != None  : return char_cine_acou
2249   if EVOL_IMPO != None  :
2250       if AsType(EVOL_IMPO) in (evol_elas,evol_noli) :
2251           return char_cine_meca
2252       elif AsType(EVOL_IMPO) in (evol_ther,) :
2253           return char_cine_ther
2254       else :
2255           raise AsException("Extension à faire ...")
2256
2257   raise AsException("type de concept resultat non prevu")
2258
2259
2260 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
2261                     ,fr="Affectation de conditions aux limites cinématiques (U=U0) pour un traitement sans dualisation",
2262                      reentrant='n',
2263             UIinfo={"groupes":("Chargements","Mécanique",)},
2264          regles=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'),
2265                  ),
2266          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2267
2268          MECA_IMPO       =FACT(statut='f',max='**',
2269            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2270                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2271                                'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2272                                'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2273                                'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2274                                'VO6','WI6','WO6','WO','WI1','WO1','GONF',
2275                                'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2276                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22',
2277                                'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
2278                                'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),),
2279              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2280              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2281              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2282              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2283              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2284              DX              =SIMP(statut='f',typ='R' ),
2285              DY              =SIMP(statut='f',typ='R' ),
2286              DZ              =SIMP(statut='f',typ='R' ),
2287              DRX             =SIMP(statut='f',typ='R' ),
2288              DRY             =SIMP(statut='f',typ='R' ),
2289              DRZ             =SIMP(statut='f',typ='R' ),
2290              GRX             =SIMP(statut='f',typ='R' ),
2291              PRES            =SIMP(statut='f',typ='R' ),
2292              PHI             =SIMP(statut='f',typ='R' ),
2293              TEMP            =SIMP(statut='f',typ='R' ),
2294              PRE1            =SIMP(statut='f',typ='R' ),
2295              PRE2            =SIMP(statut='f',typ='R' ),
2296              UI2             =SIMP(statut='f',typ='R' ),
2297              UI3             =SIMP(statut='f',typ='R' ),
2298              UI4             =SIMP(statut='f',typ='R' ),
2299              UI5             =SIMP(statut='f',typ='R' ),
2300              UI6             =SIMP(statut='f',typ='R' ),
2301              UO2             =SIMP(statut='f',typ='R' ),
2302              UO3             =SIMP(statut='f',typ='R' ),
2303              UO4             =SIMP(statut='f',typ='R' ),
2304              UO5             =SIMP(statut='f',typ='R' ),
2305              UO6             =SIMP(statut='f',typ='R' ),
2306              VI2             =SIMP(statut='f',typ='R' ),
2307              VI3             =SIMP(statut='f',typ='R' ),
2308              VI4             =SIMP(statut='f',typ='R' ),
2309              VI5             =SIMP(statut='f',typ='R' ),
2310              VI6             =SIMP(statut='f',typ='R' ),
2311              VO2             =SIMP(statut='f',typ='R' ),
2312              VO3             =SIMP(statut='f',typ='R' ),
2313              VO4             =SIMP(statut='f',typ='R' ),
2314              VO5             =SIMP(statut='f',typ='R' ),
2315              VO6             =SIMP(statut='f',typ='R' ),
2316              WI2             =SIMP(statut='f',typ='R' ),
2317              WI3             =SIMP(statut='f',typ='R' ),
2318              WI4             =SIMP(statut='f',typ='R' ),
2319              WI5             =SIMP(statut='f',typ='R' ),
2320              WI6             =SIMP(statut='f',typ='R' ),
2321              WO2             =SIMP(statut='f',typ='R' ),
2322              WO3             =SIMP(statut='f',typ='R' ),
2323              WO4             =SIMP(statut='f',typ='R' ),
2324              WO5             =SIMP(statut='f',typ='R' ),
2325              WO6             =SIMP(statut='f',typ='R' ),
2326              WO              =SIMP(statut='f',typ='R' ),
2327              WI1             =SIMP(statut='f',typ='R' ),
2328              WO1             =SIMP(statut='f',typ='R' ),
2329              GONF            =SIMP(statut='f',typ='R' ),
2330              H1X             =SIMP(statut='f',typ='R' ),
2331              H1Y             =SIMP(statut='f',typ='R' ),
2332              H1Z             =SIMP(statut='f',typ='R' ),
2333              E1X             =SIMP(statut='f',typ='R' ),
2334              E1Y             =SIMP(statut='f',typ='R' ),
2335              E1Z             =SIMP(statut='f',typ='R' ),
2336              E2X             =SIMP(statut='f',typ='R' ),
2337              E2Y             =SIMP(statut='f',typ='R' ),
2338              E2Z             =SIMP(statut='f',typ='R' ),
2339              E3X             =SIMP(statut='f',typ='R' ),
2340              E3Y             =SIMP(statut='f',typ='R' ),
2341              E3Z             =SIMP(statut='f',typ='R' ),
2342              E4X             =SIMP(statut='f',typ='R' ),
2343              E4Y             =SIMP(statut='f',typ='R' ),
2344              E4Z             =SIMP(statut='f',typ='R' ),
2345              V11             =SIMP(statut='f',typ='R' ),
2346              V12             =SIMP(statut='f',typ='R' ),
2347              V13             =SIMP(statut='f',typ='R' ),
2348              V21             =SIMP(statut='f',typ='R' ),
2349              V22             =SIMP(statut='f',typ='R' ),
2350              V23             =SIMP(statut='f',typ='R' ),
2351              V31             =SIMP(statut='f',typ='R' ),
2352              V32             =SIMP(statut='f',typ='R' ),
2353              V33             =SIMP(statut='f',typ='R' ),
2354              PRES11          =SIMP(statut='f',typ='R' ),
2355              PRES12          =SIMP(statut='f',typ='R' ),
2356              PRES13          =SIMP(statut='f',typ='R' ),
2357              PRES21          =SIMP(statut='f',typ='R' ),
2358              PRES22          =SIMP(statut='f',typ='R' ),
2359              PRES23          =SIMP(statut='f',typ='R' ),
2360              PRES31          =SIMP(statut='f',typ='R' ),
2361              PRES32          =SIMP(statut='f',typ='R' ),
2362              PRES33          =SIMP(statut='f',typ='R' ),
2363              LH1             =SIMP(statut='f',typ='R' ),
2364          ),
2365
2366          THER_IMPO       =FACT(statut='f',max='**',
2367            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2368                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
2369            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2370            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2371            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2372            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2373            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2374            TEMP_SUP        =SIMP(statut='f',typ='R' ),
2375            TEMP            =SIMP(statut='f',typ='R' ),
2376            TEMP_INF        =SIMP(statut='f',typ='R' ),
2377          ),
2378
2379          ACOU_IMPO       =FACT(statut='f',max='**',
2380            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2381            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2382            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2383            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2384            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2385            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2386            PRES            =SIMP(statut='o',typ='C' ),
2387          ),
2388
2389          EVOL_IMPO  =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer les ddls d'un evol_xxx"),
2390          b_evol_impo = BLOC ( condition = "EVOL_IMPO != None",
2391            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',), # pour n'imposer que certaines CMPS (par défaut : toutes)
2392          ),
2393
2394          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2395 )  ;
2396 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
2397 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2398 # ======================================================================
2399 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2400 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2401 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2402 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2403 # (AT YOUR OPTION) ANY LATER VERSION.
2404 #
2405 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2406 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2407 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2408 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2409 #
2410 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2411 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2412 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2413 # ======================================================================
2414 # RESPONSABLE PELLET J.PELLET
2415 def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
2416   if MECA_IMPO != None  : return char_cine_meca
2417   if THER_IMPO != None  : return char_cine_ther
2418   raise AsException("type de concept resultat non prevu")
2419
2420 AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_prod,
2421                       fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres"
2422                         +" pour un traitement sans dualisation",
2423                      reentrant='n',
2424             UIinfo={"groupes":("Chargements","Mécanique",)},
2425          regles=(UN_PARMI('MECA_IMPO','THER_IMPO')),
2426          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2427          MECA_IMPO       =FACT(statut='f',max='**',
2428            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2429                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2430                                'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2431                                'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2432                                'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2433                                'VO6','WI6','WO6','WO','WI1','WO1','GONF',
2434                                'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2435                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22',
2436                                'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
2437                                'PRES22','PRES23','PRES31','PRES32','PRES33','LH1'),),
2438            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2439            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2440            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2441            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2442            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2443            DX    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2444            DY    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2445            DZ    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2446            DRX   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2447            DRY   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2448            DRZ   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2449            GRX   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2450            PRES  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2451            PHI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2452            TEMP  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2453            PRE1  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2454            PRE2  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2455            UI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2456            UI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2457            UI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2458            UI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2459            UI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2460            UO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2461            UO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2462            UO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2463            UO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2464            UO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2465            VI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2466            VI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2467            VI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2468            VI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2469            VI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2470            VO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2471            VO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2472            VO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2473            VO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2474            VO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2475            WI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2476            WI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2477            WI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2478            WI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2479            WI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2480            WO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2481            WO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2482            WO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2483            WO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2484            WO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2485            WO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2486            WI1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2487            WO1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2488            GONF  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2489            H1X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2490            H1Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2491            H1Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2492            E1X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2493            E1Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2494            E1Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2495            E2X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2496            E2Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2497            E2Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2498            E3X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2499            E3Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2500            E3Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2501            E4X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2502            E4Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2503            E4Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2504            V11   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2505            V12   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2506            V13   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2507            V21   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2508            V22   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2509            V23   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2510            V31   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2511            V32   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2512            V33   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2513            PRES11=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2514            PRES12=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2515            PRES13=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2516            PRES21=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2517            PRES22=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2518            PRES23=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2519            PRES31=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2520            PRES32=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2521            PRES33=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2522            LH1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2523
2524          ),
2525          THER_IMPO       =FACT(statut='f',max='**',
2526            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2527                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
2528            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2529            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2530            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2531            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2532            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2533            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2534            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2535            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2536          ),
2537          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2538 )  ;
2539 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
2540 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2541 # ======================================================================
2542 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2543 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2544 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2545 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2546 # (AT YOUR OPTION) ANY LATER VERSION.
2547 #
2548 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2549 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2550 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2551 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2552 #
2553 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2554 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2555 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2556 # ======================================================================
2557 # RESPONSABLE DESROCHES X.DESROCHES
2558 AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
2559                     fr="Affectation de charges et conditions aux limites mécaniques constantes",
2560                      reentrant='n',
2561             UIinfo={"groupes":("Chargements","Mécanique",)},
2562          regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE',
2563                              'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
2564                              'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',
2565                              'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
2566                              'VITE_FACE','RELA_CINE_BP','EPSI_INIT',
2567                              'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP','LIAISON_SOLIDE',
2568                              'LIAISON_ELEM','ONDE_FLUI','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
2569                              'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU',
2570                              'EFFE_FOND','EVOL_CHAR','DDL_POUTRE',),
2571                          ),
2572          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2573          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
2574          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
2575                                typ=evol_char ),
2576
2577          PESANTEUR       =FACT(statut='f',max=1,fr="Champ de pesanteur",
2578             GROUP_MA         =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2579             MAILLE           =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2580             GRAVITE          =SIMP(statut='o',typ='R',min=1,max=1),
2581             DIRECTION        =SIMP(statut='o',typ='R',min=3,max=3),),
2582
2583          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
2584                                into=('DUALISATION',),defaut='DUALISATION',),
2585                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
2586
2587          ROTATION        =FACT(statut='f', max=1, fr="Définition d'un chargement de rotation",
2588                        GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(), max='**'),
2589                        MAILLE   = SIMP(statut='f',typ=ma, validators=NoRepeat(),max='**'),
2590                        VITESSE  = SIMP(statut='o', typ='R',min=1,max=1),
2591                        AXE      = SIMP(statut='o', typ='R',min=2, max=3),
2592                        CENTRE   = SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),
2593          b_rotation_tout=BLOC(condition="(GROUP_MA == None) and (MAILLE ==None)",
2594                        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),),
2595          b_rotation=BLOC(condition="(GROUP_MA != None) or (MAILLE !=None)",
2596                        TOUT     = SIMP(statut='f',typ='TXM',into=("NON","OUI"),defaut="NON",),),),
2597
2598          DDL_IMPO        =FACT(statut='f',max='**',
2599              fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
2600              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2601                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2602                                  'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2603                                  'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2604                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2605                                  'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON',
2606                                  'H1X','H1Y','H1Z','H2X','H2Y','H2Z','H3X','H3Y','H3Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2607                                  'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
2608                                  'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
2609                                  'PRES31','PRES32','PRES33',),),
2610              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2611              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2612              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2613              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2614              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2615              LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
2616              DX              =SIMP(statut='f',typ='R' ),
2617              DY              =SIMP(statut='f',typ='R' ),
2618              DZ              =SIMP(statut='f',typ='R' ),
2619              DRX             =SIMP(statut='f',typ='R' ),
2620              DRY             =SIMP(statut='f',typ='R' ),
2621              DRZ             =SIMP(statut='f',typ='R' ),
2622              GRX             =SIMP(statut='f',typ='R' ),
2623              PRES            =SIMP(statut='f',typ='R' ),
2624              PHI             =SIMP(statut='f',typ='R' ),
2625              TEMP            =SIMP(statut='f',typ='R' ),
2626              PRE1            =SIMP(statut='f',typ='R' ),
2627              PRE2            =SIMP(statut='f',typ='R' ),
2628              UI2             =SIMP(statut='f',typ='R' ),
2629              UI3             =SIMP(statut='f',typ='R' ),
2630              UI4             =SIMP(statut='f',typ='R' ),
2631              UI5             =SIMP(statut='f',typ='R' ),
2632              UI6             =SIMP(statut='f',typ='R' ),
2633              UO2             =SIMP(statut='f',typ='R' ),
2634              UO3             =SIMP(statut='f',typ='R' ),
2635              UO4             =SIMP(statut='f',typ='R' ),
2636              UO5             =SIMP(statut='f',typ='R' ),
2637              UO6             =SIMP(statut='f',typ='R' ),
2638              VI2             =SIMP(statut='f',typ='R' ),
2639              VI3             =SIMP(statut='f',typ='R' ),
2640              VI4             =SIMP(statut='f',typ='R' ),
2641              VI5             =SIMP(statut='f',typ='R' ),
2642              VI6             =SIMP(statut='f',typ='R' ),
2643              VO2             =SIMP(statut='f',typ='R' ),
2644              VO3             =SIMP(statut='f',typ='R' ),
2645              VO4             =SIMP(statut='f',typ='R' ),
2646              VO5             =SIMP(statut='f',typ='R' ),
2647              VO6             =SIMP(statut='f',typ='R' ),
2648              WI2             =SIMP(statut='f',typ='R' ),
2649              WI3             =SIMP(statut='f',typ='R' ),
2650              WI4             =SIMP(statut='f',typ='R' ),
2651              WI5             =SIMP(statut='f',typ='R' ),
2652              WI6             =SIMP(statut='f',typ='R' ),
2653              WO2             =SIMP(statut='f',typ='R' ),
2654              WO3             =SIMP(statut='f',typ='R' ),
2655              WO4             =SIMP(statut='f',typ='R' ),
2656              WO5             =SIMP(statut='f',typ='R' ),
2657              WO6             =SIMP(statut='f',typ='R' ),
2658              WO              =SIMP(statut='f',typ='R' ),
2659              WI1             =SIMP(statut='f',typ='R' ),
2660              WO1             =SIMP(statut='f',typ='R' ),
2661              GONF            =SIMP(statut='f',typ='R' ),
2662              H1X             =SIMP(statut='f',typ='R' ),
2663              H1Y             =SIMP(statut='f',typ='R' ),
2664              H1Z             =SIMP(statut='f',typ='R' ),
2665              H2X             =SIMP(statut='f',typ='R' ),
2666              H2Y             =SIMP(statut='f',typ='R' ),
2667              H2Z             =SIMP(statut='f',typ='R' ),
2668              H3X             =SIMP(statut='f',typ='R' ),
2669              H3Y             =SIMP(statut='f',typ='R' ),
2670              H3Z             =SIMP(statut='f',typ='R' ),
2671              E1X             =SIMP(statut='f',typ='R' ),
2672              E1Y             =SIMP(statut='f',typ='R' ),
2673              E1Z             =SIMP(statut='f',typ='R' ),
2674              E2X             =SIMP(statut='f',typ='R' ),
2675              E2Y             =SIMP(statut='f',typ='R' ),
2676              E2Z             =SIMP(statut='f',typ='R' ),
2677              E3X             =SIMP(statut='f',typ='R' ),
2678              E3Y             =SIMP(statut='f',typ='R' ),
2679              E3Z             =SIMP(statut='f',typ='R' ),
2680              E4X             =SIMP(statut='f',typ='R' ),
2681              E4Y             =SIMP(statut='f',typ='R' ),
2682              E4Z             =SIMP(statut='f',typ='R' ),
2683              LAGS_C          =SIMP(statut='f',typ='R' ),
2684              V11             =SIMP(statut='f',typ='R' ),
2685              V12             =SIMP(statut='f',typ='R' ),
2686              V13             =SIMP(statut='f',typ='R' ),
2687              V21             =SIMP(statut='f',typ='R' ),
2688              V22             =SIMP(statut='f',typ='R' ),
2689              V23             =SIMP(statut='f',typ='R' ),
2690              V31             =SIMP(statut='f',typ='R' ),
2691              V32             =SIMP(statut='f',typ='R' ),
2692              V33             =SIMP(statut='f',typ='R' ),
2693              PRES11          =SIMP(statut='f',typ='R' ),
2694              PRES12          =SIMP(statut='f',typ='R' ),
2695              PRES13          =SIMP(statut='f',typ='R' ),
2696              PRES21          =SIMP(statut='f',typ='R' ),
2697              PRES22          =SIMP(statut='f',typ='R' ),
2698              PRES23          =SIMP(statut='f',typ='R' ),
2699              PRES31          =SIMP(statut='f',typ='R' ),
2700              PRES32          =SIMP(statut='f',typ='R' ),
2701              PRES33          =SIMP(statut='f',typ='R' ),
2702            ),
2703
2704
2705
2706          DDL_POUTRE    =FACT(statut='f',max='**',
2707              fr="Bloque des DDLs dans un repère local d'une poutre",
2708              regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
2709                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),
2710                      UN_PARMI('VECT_Y','ANGL_VRIL'),),
2711              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2712              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2713              DX              =SIMP(statut='f',typ='R' ),
2714              DY              =SIMP(statut='f',typ='R' ),
2715              DZ              =SIMP(statut='f',typ='R' ),
2716              DRX             =SIMP(statut='f',typ='R' ),
2717              DRY             =SIMP(statut='f',typ='R' ),
2718              DRZ             =SIMP(statut='f',typ='R' ),
2719 #  définition du repère local
2720              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
2721              ANGL_VRIL       =SIMP(statut='f',typ='R',),
2722 #  restriction sur les mailles servant à définir le repère local
2723              GROUP_MA        =SIMP(statut='f',typ=grma,),
2724              MAILLE          =SIMP(statut='f',typ=ma,),
2725                             ),
2726
2727
2728
2729            FACE_IMPO       =FACT(statut='f',max='**',
2730              fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)",
2731              regles=(UN_PARMI('GROUP_MA','MAILLE',),
2732                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2733                                  'TEMP','PRE1','PRE2','DNOR','DTAN'),
2734                      EXCLUS('DNOR','DX'),
2735                      EXCLUS('DNOR','DY'),
2736                      EXCLUS('DNOR','DZ'),
2737                      EXCLUS('DNOR','DRX'),
2738                      EXCLUS('DNOR','DRY'),
2739                      EXCLUS('DNOR','DRZ'),
2740                      EXCLUS('DTAN','DX'),
2741                      EXCLUS('DTAN','DY'),
2742                      EXCLUS('DTAN','DZ'),
2743                      EXCLUS('DTAN','DRX'),
2744                      EXCLUS('DTAN','DRY'),
2745                      EXCLUS('DTAN','DRZ'),),
2746 #  rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
2747              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2748              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2749              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2750              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2751              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2752              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2753              DX              =SIMP(statut='f',typ='R' ),
2754              DY              =SIMP(statut='f',typ='R' ),
2755              DZ              =SIMP(statut='f',typ='R' ),
2756              DRX             =SIMP(statut='f',typ='R' ),
2757              DRY             =SIMP(statut='f',typ='R' ),
2758              DRZ             =SIMP(statut='f',typ='R' ),
2759              DNOR            =SIMP(statut='f',typ='R' ),
2760              DTAN            =SIMP(statut='f',typ='R' ),
2761              GRX             =SIMP(statut='f',typ='R' ),
2762              PRES            =SIMP(statut='f',typ='R' ),
2763              PHI             =SIMP(statut='f',typ='R' ),
2764              TEMP            =SIMP(statut='f',typ='R' ),
2765              PRE1            =SIMP(statut='f',typ='R' ),
2766              PRE2            =SIMP(statut='f',typ='R' ),
2767            ),
2768
2769          CHAMNO_IMPO  =FACT(statut='f',max='**',
2770              fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster",
2771 #  type de cham_no_sdaster CO()
2772              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
2773              COEF_MULT       =SIMP(statut='o',typ='R' ),
2774              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2775            ),
2776
2777
2778            LIAISON_DDL     =FACT(statut='f',max='**',
2779              fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds",
2780              regles=(UN_PARMI('GROUP_NO','NOEUD'),),
2781              GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
2782              NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
2783              DDL             =SIMP(statut='o',typ='TXM',max='**'),
2784              COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
2785              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2786            ),
2787
2788            LIAISON_OBLIQUE =FACT(statut='f',max='**',
2789              fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante"
2790               +" dans un repère oblique quelconque",
2791              regles=(UN_PARMI('GROUP_NO','NOEUD'),
2792                      UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
2793              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2794              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2795              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
2796              DX              =SIMP(statut='f',typ='R' ),
2797              DY              =SIMP(statut='f',typ='R' ),
2798              DZ              =SIMP(statut='f',typ='R' ),
2799              DRX             =SIMP(statut='f',typ='R' ),
2800              DRY             =SIMP(statut='f',typ='R' ),
2801              DRZ             =SIMP(statut='f',typ='R' ),
2802            ),
2803
2804            LIAISON_GROUP   =FACT(statut='f',max='**',
2805              fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds",
2806              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
2807                      UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
2808                      EXCLUS('GROUP_MA_1','GROUP_NO_2'),
2809                      EXCLUS('GROUP_MA_1','NOEUD_2'),
2810                      EXCLUS('GROUP_NO_1','GROUP_MA_2'),
2811                      EXCLUS('GROUP_NO_1','MAILLE_2'),
2812                      EXCLUS('MAILLE_1','GROUP_NO_2'),
2813                      EXCLUS('MAILLE_1','NOEUD_2'),
2814                      EXCLUS('NOEUD_1','GROUP_MA_2'),
2815                      EXCLUS('NOEUD_1','MAILLE_2'),
2816                      EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
2817
2818                GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2819                MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2820                GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2821                MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2822                GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2823                NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2824                GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2825                NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2826
2827              SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
2828              SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
2829              DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
2830              COEF_MULT_1     =SIMP(statut='o',typ='R'  ,max='**'),
2831              DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
2832              COEF_MULT_2     =SIMP(statut='o',typ='R'  ,max='**'),
2833              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2834              SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2835              TRAN            =SIMP(statut='f',typ='R',max=3),
2836              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
2837              CENTRE          =SIMP(statut='f',typ='R',max=3),
2838            ),
2839
2840            LIAISON_MAIL    =FACT(statut='f',max='**',
2841              fr="Définit des relations linéaires permettant de recoller deux bords d'une structure",
2842              regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
2843                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL')),
2844               GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2845               MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2846               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2847               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2848               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2849               NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2850
2851               TYPE_RACCORD    =SIMP(statut='o',typ='TXM',defaut="MASSIF",into=("MASSIF","COQUE","COQUE_MASSIF","MASSIF_COQUE",)),
2852
2853               b_MASSIF     =BLOC ( condition = "TYPE_RACCORD == 'MASSIF'",
2854                  regles=( PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
2855               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2856               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2857               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2858               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2859               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2860               ),
2861               b_COQUE_MASSIF =BLOC ( condition = "TYPE_RACCORD == 'COQUE_MASSIF'",
2862                  EPAIS           =SIMP(statut='o',typ='R'),
2863                  CHAM_NORMALE    =SIMP(statut='o',typ=cham_no_sdaster),
2864               ),
2865               ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2866          ),
2867
2868            LIAISON_CYCL    =FACT(statut='f',max='**',
2869              fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques",
2870              regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'),
2871                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
2872                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),
2873                      ),
2874               GROUP_MA_MAIT1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2875               MAILLE_MAIT1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2876               GROUP_MA_MAIT2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2877               MAILLE_MAIT2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2878               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2879               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2880               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2881               NOEUD_ESCL     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2882               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2883               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2884               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2885               COEF_MAIT1            =SIMP(statut='f',typ='R',max=1 ),
2886               COEF_MAIT2            =SIMP(statut='f',typ='R',max=1 ),
2887               COEF_ESCL            =SIMP(statut='f',typ='R',max=1 ),
2888               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2889               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2890          ),
2891
2892
2893            LIAISON_SOLIDE  =FACT(statut='f',max='**',
2894              fr="Modélise une partie indéformable d'une structure."
2895               +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.",
2896              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
2897                      ENSEMBLE('CENTRE','ANGL_NAUT'),),
2898              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2899              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2900              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2901              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2902              TRAN            =SIMP(statut='f',typ='R',max=3 ),
2903              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2904              CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2905              DIST_MIN        =SIMP(statut='f',typ='R'),
2906              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2907            ),
2908
2909          LIAISON_ELEM    =FACT(statut='f',max='**',
2910             fr="Modélise le raccord : d'une partie massive 3D avec une poutre ou avec un tuyau, d'une coque"
2911                +" avec une poutre ou avec un tuyau, d'une plaque avec une poutre",
2912             regles      =(UN_PARMI('GROUP_MA_1','MAILLE_1'), UN_PARMI('GROUP_NO_2','NOEUD_2'),),
2913             OPTION      =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU","PLAQ_POUT_ORTH") ),
2914             GROUP_MA_1  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2915             MAILLE_1    =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2916             GROUP_NO_2  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2917             NOEUD_2     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2918             NUME_LAGR   =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2919             ANGL_MAX    =SIMP(statut='f',typ='R',defaut= 1. ),
2920             b_dalcol =BLOC( condition = "OPTION == 'PLAQ_POUT_ORTH'",
2921                VERIF_EXCENT   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2922             ),
2923             b_option =BLOC( condition = "OPTION != 'PLAQ_POUT_ORTH'",
2924                CARA_ELEM   =SIMP(statut='f',typ=(cara_elem) ),
2925                AXE_POUTRE  =SIMP(statut='f',typ='R',max=3),
2926             ),
2927          ),
2928
2929            LIAISON_UNIF    =FACT(statut='f',max='**',
2930              fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
2931              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
2932              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2933              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2934              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2935              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2936              DDL             =SIMP(statut='o',typ='TXM',max='**'),
2937            ),
2938
2939          LIAISON_CHAMNO  =FACT(statut='f',max='**',
2940              fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO",
2941 #  type de cham_no_sdaster CO()
2942              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
2943              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2944              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2945            ),
2946
2947
2948          LIAISON_INTERF  =FACT(statut='f',max='**',
2949              fr="Définit une relation linéaire entre les DDLs d'interface à partir d'un MACRELEM",
2950              MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna),
2951              TYPE_LIAISON    =SIMP(statut='f',typ='TXM',defaut="RIGIDE",into=("RIGIDE","SOUPLE") ),
2952            ),
2953
2954          LIAISON_XFEM      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
2955
2956          CONTACT_XFEM      =SIMP(statut='f',typ=char_contact,min=1,max=1,),
2957
2958
2959 #         SIMP(statut='f',typ='TXM',defaut="NON" ),
2960
2961          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster ),
2962 #
2963 # FORCES
2964 #
2965          FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
2966            regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
2967                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
2968            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2969            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2970            FX              =SIMP(statut='f',typ='R' ),
2971            FY              =SIMP(statut='f',typ='R' ),
2972            FZ              =SIMP(statut='f',typ='R' ),
2973            MX              =SIMP(statut='f',typ='R' ),
2974            MY              =SIMP(statut='f',typ='R' ),
2975            MZ              =SIMP(statut='f',typ='R' ),
2976            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
2977          ),
2978
2979          FORCE_FACE      =FACT(statut='f',max='**',
2980              fr="Applique des forces surfaciques sur une face d'élément volumique",
2981              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
2982                      AU_MOINS_UN('FX','FY','FZ'),),
2983              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2984              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2985              FX              =SIMP(statut='f',typ='R' ),
2986              FY              =SIMP(statut='f',typ='R' ),
2987              FZ              =SIMP(statut='f',typ='R' ),
2988            ),
2989
2990          FORCE_ARETE     =FACT(statut='f',max='**',
2991          fr="Applique des forces linéiques à une arete d'élément volumique ou de coque",
2992              regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
2993                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
2994              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2995              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2996              FX              =SIMP(statut='f',typ='R' ),
2997              FY              =SIMP(statut='f',typ='R' ),
2998              FZ              =SIMP(statut='f',typ='R' ),
2999              MX              =SIMP(statut='f',typ='R' ),
3000              MY              =SIMP(statut='f',typ='R' ),
3001              MZ              =SIMP(statut='f',typ='R' ),
3002            ),
3003
3004          FORCE_CONTOUR   =FACT(statut='f',max='**',
3005              fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER",
3006              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3007                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3008              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3009              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3010              FX              =SIMP(statut='f',typ='R' ),
3011              FY              =SIMP(statut='f',typ='R' ),
3012              FZ              =SIMP(statut='f',typ='R' ),
3013              MX              =SIMP(statut='f',typ='R' ),
3014              MY              =SIMP(statut='f',typ='R' ),
3015              MZ              =SIMP(statut='f',typ='R' ),
3016            ),
3017
3018          FORCE_INTERNE   =FACT(statut='f',max='**',
3019              fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique",
3020              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3021                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3022                      AU_MOINS_UN('FX','FY','FZ' ),),
3023              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3024              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3025              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3026              FX              =SIMP(statut='f',typ='R' ),
3027              FY              =SIMP(statut='f',typ='R' ),
3028              FZ              =SIMP(statut='f',typ='R' ),
3029            ),
3030
3031          SIGM_INTERNE   =FACT(statut='f',max='**',
3032              fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique",
3033              #INST            =SIMP(statut='f',typ='R' ),
3034              SIGM            =SIMP(statut='o',typ=(cham_elem,carte_sdaster)),
3035            ),
3036
3037          PRES_REP        =FACT(statut='f',max='**',
3038              fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux",
3039              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
3040                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
3041                      AU_MOINS_UN('PRES','CISA_2D' ),),
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              FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
3046              PRES            =SIMP(statut='f',typ='R' ),
3047              CISA_2D         =SIMP(statut='f',typ='R' ),
3048            ),
3049
3050          EFFE_FOND       =FACT(statut='f',max='**',
3051            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression",
3052            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3053            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
3054            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3055            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3056            PRES            =SIMP(statut='o',typ='R' ),
3057          ),
3058
3059          EPSI_INIT       =FACT(statut='f',max='**',
3060              fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure",
3061              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3062                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3063                      AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
3064                                  'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
3065              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3066              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3067              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3068              EPXX            =SIMP(statut='f',typ='R' ),
3069              EPYY            =SIMP(statut='f',typ='R' ),
3070              EPZZ            =SIMP(statut='f',typ='R' ),
3071              EPXY            =SIMP(statut='f',typ='R' ),
3072              EPXZ            =SIMP(statut='f',typ='R' ),
3073              EPYZ            =SIMP(statut='f',typ='R' ),
3074              EPX             =SIMP(statut='f',typ='R' ),
3075              KY              =SIMP(statut='f',typ='R' ),
3076              KZ              =SIMP(statut='f',typ='R' ),
3077              EXX             =SIMP(statut='f',typ='R' ),
3078              EYY             =SIMP(statut='f',typ='R' ),
3079              EXY             =SIMP(statut='f',typ='R' ),
3080              KXX             =SIMP(statut='f',typ='R' ),
3081              KYY             =SIMP(statut='f',typ='R' ),
3082              KXY             =SIMP(statut='f',typ='R' ),
3083            ),
3084
3085         FORCE_POUTRE    =FACT(statut='f',max='**',
3086              fr="Applique des forces linéiques sur des éléments de type poutre",
3087              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3088                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3089                      AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
3090                      PRESENT_ABSENT('FX','N','VY','VZ'),
3091                      PRESENT_ABSENT('FY','N','VY','VZ'),
3092                      PRESENT_ABSENT('FZ','N','VY','VZ'),
3093                      PRESENT_ABSENT('N','FX','FY','FZ'),
3094                      PRESENT_ABSENT('VY','FX','FY','FZ'),
3095                      PRESENT_ABSENT('VZ','FX','FY','FZ'),),
3096              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3097              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3098              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3099              TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
3100 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3101                FX              =SIMP(statut='f',typ='R' ),
3102                FY              =SIMP(statut='f',typ='R' ),
3103                FZ              =SIMP(statut='f',typ='R' ),
3104
3105                N               =SIMP(statut='f',typ='R' ),
3106                VY              =SIMP(statut='f',typ='R' ),
3107                VZ              =SIMP(statut='f',typ='R' ),
3108
3109            ),
3110
3111          FORCE_TUYAU     =FACT(statut='f',max='**',
3112              fr="Applique une pression sur des éléments TUYAU",
3113              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3114                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3115              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3116              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3117              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3118              PRES            =SIMP(statut='f',typ='R' ),
3119            ),
3120
3121          FORCE_COQUE     =FACT(statut='f',max='**',
3122              fr="Applique des forces surfaciques sur des éléments de types coques",
3123              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3124                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3125                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
3126                      PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
3127                      PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
3128                      PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
3129                      PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
3130                      PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
3131                      PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
3132                      PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
3133                      PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
3134                      PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
3135                      PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
3136                      PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
3137                      PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
3138 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3139              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3140              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3141              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3142
3143                FX              =SIMP(statut='f',typ='R' ),
3144                FY              =SIMP(statut='f',typ='R' ),
3145                FZ              =SIMP(statut='f',typ='R' ),
3146                MX              =SIMP(statut='f',typ='R' ),
3147                MY              =SIMP(statut='f',typ='R' ),
3148                MZ              =SIMP(statut='f',typ='R' ),
3149
3150                F1              =SIMP(statut='f',typ='R' ),
3151                F2              =SIMP(statut='f',typ='R' ),
3152                F3              =SIMP(statut='f',typ='R' ),
3153                MF1             =SIMP(statut='f',typ='R' ),
3154                MF2             =SIMP(statut='f',typ='R' ),
3155
3156              PRES            =SIMP(statut='f',typ='R' ),
3157              PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
3158            ),
3159
3160            LIAISON_COQUE   =FACT(statut='f',max='**',
3161              fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
3162              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3163              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3164              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3165              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3166              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3167              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3168              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3169              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3170              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3171            ),
3172
3173          RELA_CINE_BP    =FACT(statut='f',max='**',
3174            fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier"
3175               +" la prise en compte des contraintes initiales dans les cables",
3176            CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
3177            SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
3178            RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3179            DIST_MIN        =SIMP(statut='f',typ='R'),
3180          ),
3181
3182          FORCE_ELEC      =FACT(statut='f',max='**',
3183              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3184                  +" secondaire droit",
3185              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3186                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3187
3188              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3189              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3190              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3191
3192              POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
3193              b_fxyz  =BLOC ( condition = "POSITION == None",
3194                   FX   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3195                   FY   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3196                   FZ   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3197                        ),
3198
3199              b_para     =BLOC ( condition = "POSITION == 'PARA'",
3200                regles=(UN_PARMI('TRANS','DIST'),),
3201                TRANS           =SIMP(statut='f',typ='R',max=3),
3202                DIST            =SIMP(statut='f',typ='R' ),
3203                b_point2        =BLOC ( condition = "DIST != None",
3204                  POINT2           =SIMP(statut='o',typ='R',max=3),
3205                ),
3206              ),
3207              b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
3208                POINT1          =SIMP(statut='o',typ='R',max=3),
3209                POINT2          =SIMP(statut='o',typ='R',max=3),
3210              ),
3211            ),
3212
3213
3214
3215
3216         INTE_ELEC       =FACT(statut='f',max='**',
3217              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3218                +" secondaire non nécessairement droit",
3219              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3220                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3221                      AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
3222                      EXCLUS('TRANS','SYME'),),
3223              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3224              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3225              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3226              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3227              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3228              TRANS           =SIMP(statut='f',typ='R' ,max='**'),
3229              SYME            =SIMP(statut='f',typ='R' ,max='**'),
3230            ),
3231
3232
3233          IMPE_FACE       =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**',
3234              regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
3235              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3236              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3237              IMPE            =SIMP(statut='o',typ='R' ),
3238            ),
3239
3240          VITE_FACE       =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**',
3241              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3242              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3243              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3244              VNOR            =SIMP(statut='o',typ='R' ),
3245            ),
3246
3247
3248
3249          ONDE_FLUI       =FACT(statut='f',max='**',
3250              fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face",
3251              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3252              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3253              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3254              PRES            =SIMP(statut='o',typ='R' ),
3255            ),
3256
3257          FLUX_THM_REP    =FACT(statut='f',max='**',
3258              fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide"
3259                  +" (flux hydraulique)",
3260              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3261                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3262                      AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
3263              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3264              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3265              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3266              FLUN            =SIMP(statut='f',typ='R' ),
3267              FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
3268              FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
3269            ),
3270
3271          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3272 )  ;
3273
3274
3275 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
3276 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3277 # ======================================================================
3278 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3279 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3280 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3281 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3282 # (AT YOUR OPTION) ANY LATER VERSION.
3283 #
3284 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3285 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3286 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3287 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3288 #
3289 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3290 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3291 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3292 # ======================================================================
3293 # RESPONSABLE DESROCHES X.DESROCHES
3294 AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
3295                      fr="Affectation de charges et conditions aux limites mécaniques complexes",
3296                      reentrant='n',
3297             UIinfo={"groupes":("Chargements","Mécanique",)},
3298          regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
3299          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
3300          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3301          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
3302                                into=('DUALISATION',),defaut='DUALISATION',),
3303                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
3304          DDL_IMPO        =FACT(statut='f',max='**',
3305            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
3306            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
3307                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),),
3308            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3309            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3310            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3311            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3312            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3313            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
3314            DX              =SIMP(statut='f',typ='C' ),
3315            DY              =SIMP(statut='f',typ='C' ),
3316            DZ              =SIMP(statut='f',typ='C' ),
3317            DRX             =SIMP(statut='f',typ='C' ),
3318            DRY             =SIMP(statut='f',typ='C' ),
3319            DRZ             =SIMP(statut='f',typ='C' ),
3320            GRX             =SIMP(statut='f',typ='C' ),
3321            PRES            =SIMP(statut='f',typ='C' ),
3322            PHI             =SIMP(statut='f',typ='C' ),
3323          ),
3324          FORCE_POUTRE    =FACT(statut='f',max='**',
3325            fr="Applique des forces linéiques sur des éléments de type poutre",
3326            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3327                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3328                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
3329                    PRESENT_ABSENT('FX','N','VY','VZ',),
3330                    PRESENT_ABSENT('FY','N','VY','VZ',),
3331                    PRESENT_ABSENT('FZ','N','VY','VZ',),
3332                    PRESENT_ABSENT('N','FX','FY','FZ',),
3333                    PRESENT_ABSENT('VY', 'FX','FY','FZ',),
3334                    PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
3335            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3336            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3337            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3338            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
3339            FX              =SIMP(statut='f',typ='C' ),
3340            FY              =SIMP(statut='f',typ='C' ),
3341            FZ              =SIMP(statut='f',typ='C' ),
3342            N               =SIMP(statut='f',typ='C' ),
3343            VY              =SIMP(statut='f',typ='C' ),
3344            VZ              =SIMP(statut='f',typ='C' ),
3345          ),
3346          LIAISON_DDL     =FACT(statut='f',max='**',
3347            fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds",
3348            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
3349            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3350            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3351            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3352            COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
3353            COEF_IMPO       =SIMP(statut='o',typ='C' ),
3354          ),
3355          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3356 )  ;
3357 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
3358 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3359 # ======================================================================
3360 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3361 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3362 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3363 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3364 # (AT YOUR OPTION) ANY LATER VERSION.
3365 #
3366 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3367 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3368 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3369 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3370 #
3371 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3372 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3373 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3374 # ======================================================================
3375 # RESPONSABLE DESROCHES X.DESROCHES
3376 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
3377                       fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres",
3378                       reentrant='n',
3379             UIinfo={"groupes":("Chargements","Mécanique",)},
3380         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
3381                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
3382                             'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE',
3383                             'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF',
3384                             'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU',
3385                             'EFFE_FOND','FLUX_THM_REP',),),
3386          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3387          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3388          MODELE          =SIMP(statut='o',typ=modele_sdaster),
3389          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
3390                                into=('DUALISATION',),defaut='DUALISATION',),
3391                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
3392
3393          DDL_IMPO        =FACT(statut='f',max='**',
3394            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
3395                +" par l'intermédiaire d'un concept fonction ",
3396            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
3397                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
3398                                'TEMP','PRE1','PRE2','LIAISON','H1X',
3399                                'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
3400                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
3401            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3402            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3403            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3404            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3405            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3406            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
3407            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3408            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3409            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3410            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3411            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3412            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3413            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3414            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3415            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3416            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3417            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3418            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3419            H1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3420            H1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3421            H1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3422            E1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3423            E1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3424            E1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3425            E2X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3426            E2Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3427            E2Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3428            E3X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3429            E3Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3430            E3Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3431            E4X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3432            E4Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3433            E4Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3434            LAGS_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3435          ),
3436
3437          FACE_IMPO       =FACT(statut='f',max='**',
3438            fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)"
3439               +" fournies par l'intérmédiaire d'un concept fonction",
3440            regles=(UN_PARMI('GROUP_MA','MAILLE'),
3441                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
3442                    EXCLUS('DNOR','DX'),
3443                    EXCLUS('DNOR','DY'),
3444                    EXCLUS('DNOR','DZ'),
3445                    EXCLUS('DNOR','DRX'),
3446                    EXCLUS('DNOR','DRY'),
3447                    EXCLUS('DNOR','DRZ'),
3448                    EXCLUS('DTAN','DX'),
3449                    EXCLUS('DTAN','DY'),
3450                    EXCLUS('DTAN','DZ'),
3451                    EXCLUS('DTAN','DRX'),
3452                    EXCLUS('DTAN','DRY'),
3453                    EXCLUS('DTAN','DRZ'),),
3454 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3455            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3456            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3457            SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3458            SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3459            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3460            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3461            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3462            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3463            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3464            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3465            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3466            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3467            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3468            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3469            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3470            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3471            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3472            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3473            DNOR            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3474            DTAN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3475          ),
3476
3477          LIAISON_DDL     =FACT(statut='f',max='**',
3478            fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par"
3479                +" l'intermediaire d'un concept de type fonction",
3480            regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),),
3481            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3482            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3483            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3484            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),
3485            COEF_MULT_FONC  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
3486            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3487          ),
3488
3489          LIAISON_OBLIQUE =FACT(statut='f',max='**',
3490            fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique"
3491               +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction",
3492            regles=(UN_PARMI('GROUP_NO','NOEUD'),
3493                    UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
3494            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3495            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3496            ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
3497            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3498            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3499            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3500            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3501            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3502            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3503          ),
3504
3505          LIAISON_GROUP   =FACT(statut='f',max='**',
3506            fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par"
3507                +" l'intermédiaire de concept fonction",
3508            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
3509                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
3510                    EXCLUS('GROUP_MA_1','GROUP_NO_2'),
3511                    EXCLUS('GROUP_MA_1','NOEUD_2'),
3512                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
3513                    EXCLUS('GROUP_NO_1','MAILLE_2'),
3514                    EXCLUS('MAILLE_1','GROUP_NO_2'),
3515                    EXCLUS('MAILLE_1','NOEUD_2'),
3516                    EXCLUS('NOEUD_1','GROUP_MA_2'),
3517                    EXCLUS('NOEUD_1','MAILLE_2'),
3518                    EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
3519            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3520            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3521            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3522            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3523            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3524            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3525            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3526            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3527            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3528            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3529            DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
3530            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
3531            DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
3532            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
3533            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3534            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3535            TRAN            =SIMP(statut='f',typ='R',max=3),
3536            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
3537            CENTRE          =SIMP(statut='f',typ='R',max=3),
3538          ),
3539
3540           LIAISON_UNIF    =FACT(statut='f',max='**',
3541            fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
3542            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
3543            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3544            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3545            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3546            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3547            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3548          ),
3549
3550
3551          LIAISON_SOLIDE  =FACT(statut='f',max='**',
3552            fr="Modélise une partie indéformable d'une structure."
3553             +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.",
3554            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
3555                    ENSEMBLE('CENTRE','ANGL_NAUT'),),
3556            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3557            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3558            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3559            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3560            TRAN            =SIMP(statut='f',typ='R',max=3 ),
3561            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
3562            CENTRE          =SIMP(statut='f',typ='R',max=3 ),
3563            DIST_MIN        =SIMP(statut='f',typ='R'),
3564            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3565          ),
3566
3567
3568
3569          FORCE_NODALE    =FACT(statut='f',max='**',
3570            fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire"
3571                +" d'un concept fonction",
3572            regles=(UN_PARMI('GROUP_NO','NOEUD'),
3573                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3574            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3575            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3576            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3577            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3578            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3579            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3580            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3581            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3582            ANGL_NAUT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ),
3583          ),
3584
3585          FORCE_FACE      =FACT(statut='f',max='**',
3586            fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies"
3587                +" par l'intermédiaire d'un concept fonction",
3588            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3589                    AU_MOINS_UN('FX','FY','FZ'),),
3590            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3591            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3592            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3593            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3594            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3595          ),
3596          FORCE_ARETE     =FACT(statut='f',max='**',
3597            fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont"
3598                +" fournies par l'intermédiaire d'un concept fonction",
3599            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3600                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3601            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3602            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3603            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3604            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3605            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3606            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3607            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3608            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3609          ),
3610          FORCE_CONTOUR   =FACT(statut='f',max='**',
3611            fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes"
3612                +" sont fournies par l'intermédiaire d'un concept fonction",
3613            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3614                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3615            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3616            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3617            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3618            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3619            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3620            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3621            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3622            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3623          ),
3624
3625          FORCE_INTERNE   =FACT(statut='f',max='**',
3626            fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies"
3627                +" par l'intermédiaire d'un concept fonction",
3628            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3629                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3630                    AU_MOINS_UN('FX','FY','FZ'),),
3631            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3632            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3633            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3634            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3635            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3636            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3637          ),
3638
3639          PRES_REP        =FACT(statut='f',max='**',
3640            fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les"
3641                +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction",
3642            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
3643                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
3644                    AU_MOINS_UN('PRES','CISA_2D'),),
3645            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3646            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3647            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3648            FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
3649            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3650            CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3651          ),
3652
3653          EFFE_FOND       =FACT(statut='f',max='**',
3654            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise"
3655                +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction",
3656            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3657            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
3658            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3659            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3660            PRES            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3661          ),
3662
3663          EPSI_INIT       =FACT(statut='f',max='**',
3664            fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes"
3665                +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction",
3666            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3667                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3668                    AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
3669            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3670            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3671            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3672            EPXX            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3673            EPYY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3674            EPZZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3675            EPXY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3676            EPXZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3677            EPYZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3678          ),
3679
3680          FORCE_POUTRE    =FACT(statut='f',max='**',
3681            fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par"
3682                +" l'intermédiaire d'un concept fonction",
3683            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3684                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3685                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
3686                    PRESENT_ABSENT('FX','N','VY','VZ'),
3687                    PRESENT_ABSENT('FY','N','VY','VZ'),
3688                    PRESENT_ABSENT('FZ','N','VY','VZ'),
3689                    PRESENT_ABSENT('N','FX','FY','FZ'),
3690                    PRESENT_ABSENT('VY','FX','FY','FZ'),
3691                    PRESENT_ABSENT('VZ','FX','FY','FZ'),),
3692 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3693            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3694            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3695            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3696            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
3697            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3698            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3699            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3700            N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3701            VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3702            VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3703          ),
3704
3705          FORCE_TUYAU     =FACT(statut='f',max='**',
3706            fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction",
3707            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3708                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3709            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3710            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3711            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3712            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3713          ),
3714
3715          FORCE_COQUE     =FACT(statut='f',max='**',
3716            fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par"
3717                +" l'intermédiaires d'un concept fonction",
3718            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3719                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3720                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
3721                    PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
3722                    PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
3723                    PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
3724                    PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
3725                    PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
3726                    PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
3727                    PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
3728                    PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
3729                    PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
3730                    PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
3731                    PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
3732                    PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
3733 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3734            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3735            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3736            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3737            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3738            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3739            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3740            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3741            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3742            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3743            F1              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3744            F2              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3745            F3              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3746            MF1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3747            MF2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3748            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3749            PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
3750                                  into=("SUP","INF","MOY","MAIL") ),
3751          ),
3752
3753          LIAISON_COQUE   =FACT(statut='f',max='**',
3754            fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
3755            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3756            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3757            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3758            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3759            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3760            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3761            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3762            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3763            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
3764          ),
3765
3766
3767          VITE_FACE       =FACT(statut='f',max='**',
3768            fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par"
3769                +" l'intermédiaire d'un concept fonction",
3770            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3771                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
3772            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3773            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3774            VNOR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3775          ),
3776          IMPE_FACE       =FACT(statut='f',max='**',
3777            fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire"
3778                +" d'un concept fonction",
3779            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3780                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
3781            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3782            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3783            IMPE            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3784          ),
3785          ONDE_PLANE      =FACT(statut='f',max='**',
3786            fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire"
3787                +" d'un concept fonction",
3788            DIRECTION       =SIMP(statut='o',typ='R',max='**'),
3789            TYPE_ONDE       =SIMP(statut='o',typ='TXM' ),
3790            FONC_SIGNAL     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3791            DIST_ORIG       =SIMP(statut='o',typ='R' ),
3792          ),
3793
3794
3795
3796          FLUX_THM_REP    =FACT(statut='f',max='**',
3797            fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)"
3798                +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction",
3799            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3800                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3801                    AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
3802            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3803            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3804            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3805            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3806            FLUN_HYDR1      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3807            FLUN_HYDR2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3808          ),
3809
3810          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3811 )  ;
3812
3813
3814 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
3815 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3816 # ======================================================================
3817 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3818 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3819 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3820 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3821 # (AT YOUR OPTION) ANY LATER VERSION.
3822 #
3823 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3824 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3825 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3826 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3827 #
3828 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3829 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3830 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3831 # ======================================================================
3832 # RESPONSABLE None
3833 AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
3834                       fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION",
3835                       reentrant='n',
3836             UIinfo={"groupes":("Outils-métier","Thermique",)},
3837          regles=(AU_MOINS_UN('CARA_TORSION', ),),
3838          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
3839          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",
3840                                into=("OUI","NON") ),
3841          CARA_TORSION    =FACT(statut='f',max='**',
3842            regles=(UN_PARMI('TOUT','GROUP_MA'),),
3843            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3844            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3845          ),
3846          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
3847 )  ;
3848 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
3849 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3850 # ======================================================================
3851 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3852 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3853 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3854 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3855 # (AT YOUR OPTION) ANY LATER VERSION.
3856 #
3857 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3858 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3859 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3860 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3861 #
3862 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3863 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3864 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3865 # ======================================================================
3866 # RESPONSABLE DESROCHES X.DESROCHES
3867 AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
3868                     ,fr="Affectation de charges et conditions aux limites thermiques constantes",
3869                     reentrant='n',
3870             UIinfo={"groupes":("Chargements","Thermique",)},
3871       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
3872                           'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
3873                           'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
3874          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
3875          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées",
3876                                into=('DUALISATION',),defaut='DUALISATION',),
3877                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
3878
3879          TEMP_IMPO       =FACT(statut='f',max='**',
3880            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
3881                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
3882            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3883            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3884            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3885            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3886            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3887            TEMP            =SIMP(statut='f',typ='R'),
3888            TEMP_INF        =SIMP(statut='f',typ='R'),
3889            TEMP_SUP        =SIMP(statut='f',typ='R'), ),
3890
3891          FLUX_REP        =FACT(statut='f',max='**',
3892            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3893                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3894                    PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
3895                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
3896            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3897            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3898            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3899            FLUN            =SIMP(statut='f',typ='R'),
3900            FLUN_INF        =SIMP(statut='f',typ='R'),
3901            FLUN_SUP        =SIMP(statut='f',typ='R'),
3902            CARA_TORSION    =SIMP(statut='f',typ=table_sdaster),
3903          ),
3904
3905
3906          RAYONNEMENT     =FACT(statut='f',max='**',
3907            fr="Attention, exprimer les températures en Celsius si rayonnement",
3908            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3909                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3910            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3911            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3912            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3913            SIGMA           =SIMP(statut='o',typ='R'),
3914            EPSILON         =SIMP(statut='o',typ='R'),
3915            TEMP_EXT        =SIMP(statut='o',typ='R'),
3916          ),
3917
3918          ECHANGE         =FACT(statut='f',max='**',
3919            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3920                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3921                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
3922                    ENSEMBLE('COEF_H','TEMP_EXT',),
3923                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
3924                              ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
3925            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3926            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3927            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3928            COEF_H          =SIMP(statut='f',typ='R'),
3929            TEMP_EXT        =SIMP(statut='f',typ='R'),
3930            COEF_H_INF      =SIMP(statut='f',typ='R'),
3931            TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
3932            COEF_H_SUP      =SIMP(statut='f',typ='R'),
3933            TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
3934          ),
3935
3936          SOURCE          =FACT(statut='f',max='**',
3937            regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
3938                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3939                    PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),),
3940            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3941            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3942            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3943            SOUR            =SIMP(statut='f',typ='R'),
3944            SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
3945          ),
3946
3947          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
3948            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3949                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3950                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
3951            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3952            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3953            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3954            FLUX_X          =SIMP(statut='f',typ='R' ),
3955            FLUX_Y          =SIMP(statut='f',typ='R' ),
3956            FLUX_Z          =SIMP(statut='f',typ='R' ),
3957                          ),
3958
3959          LIAISON_DDL     =FACT(statut='f',max='**',
3960            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
3961            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3962            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3963            DDL             =SIMP(statut='f',typ='TXM',max='**',
3964                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
3965            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
3966            COEF_IMPO       =SIMP(statut='o',typ='R' ),
3967          ),
3968
3969          LIAISON_GROUP   =FACT(statut='f',max='**',
3970            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
3971                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
3972                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
3973                              EXCLUS('GROUP_MA_1','NOEUD_2'),
3974                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
3975                              EXCLUS('GROUP_NO_1','MAILLE_2'),
3976                              EXCLUS('MAILLE_1','GROUP_NO_2'),
3977                              EXCLUS('MAILLE_1','NOEUD_2'),
3978                              EXCLUS('NOEUD_1','GROUP_MA_2'),
3979                              EXCLUS('NOEUD_1','MAILLE_2'),
3980                              EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
3981            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3982            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3983            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3984            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3985            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3986            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3987            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3988            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3989            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3990            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3991            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
3992                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
3993            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
3994            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
3995                                  into=("TEMP","TEMP_INF","TEMP_SUP",) ),
3996            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
3997            COEF_IMPO       =SIMP(statut='o',typ='R' ),
3998            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3999            TRAN            =SIMP(statut='f',typ='R',max='**'),
4000            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4001            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4002          ),
4003
4004          LIAISON_MAIL    =FACT(statut='f',max='**',
4005            regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
4006                    AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
4007                                'NOEUD_ESCL'),),
4008            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4009            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4010            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4011            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4012            GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4013            NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4014            TRAN            =SIMP(statut='f',typ='R',max='**' ),
4015            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),
4016            CENTRE          =SIMP(statut='f',typ='R',max='**' ),
4017            ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
4018          ),
4019
4020          ECHANGE_PAROI   =FACT(statut='f',max='**',
4021            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4022                    UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4023            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4024            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4025            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4026            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4027            COEF_H          =SIMP(statut='f',typ='R'),
4028            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4029            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4030            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4031                          ),
4032
4033          LIAISON_UNIF    =FACT(statut='f',max='**',
4034            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4035            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4036            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4037            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4038            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4039            DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4040                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4041          ),
4042
4043          LIAISON_CHAMNO  =FACT(statut='f',max='**',
4044            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno"
4045            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4046            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
4047          ),
4048
4049          CONVECTION      =FACT(statut='f',max='**',
4050            VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
4051          ),
4052
4053
4054          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4055 )  ;
4056 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
4057 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4058 # ======================================================================
4059 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4060 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4061 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4062 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4063 # (AT YOUR OPTION) ANY LATER VERSION.
4064 #
4065 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4066 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4067 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4068 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4069 #
4070 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4071 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4072 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4073 # ======================================================================
4074 # RESPONSABLE DESROCHES X.DESROCHES
4075 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther,
4076                      fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)"
4077                          +" paramètres (temps, ...)",
4078                      reentrant='n',
4079             UIinfo={"groupes":("Chargements","Thermique",)},
4080       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE',
4081                           'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
4082                           'GRAD_TEMP_INIT','RAYONNEMENT'),),
4083          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
4084
4085          TEMP_IMPO       =FACT(statut='f',max='**',
4086            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
4087                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
4088            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4089            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4090            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4091            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4092            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4093            DDL             =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
4094            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4095            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4096            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4097          ),
4098
4099          FLUX_REP        =FACT(statut='f',max='**',
4100            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4101                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4102                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
4103            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4104            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4105            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4106            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4107            FLUN_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4108            FLUN_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4109            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4110            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4111            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4112          ),
4113
4114          FLUX_NL         =FACT(statut='f',max='**',
4115            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4116                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4117            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4118            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4119            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4120            FLUN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4121          ),
4122
4123
4124          RAYONNEMENT     =FACT(statut='f',max='**',
4125            fr="Attention, exprimer les températures en Celsius si rayonnement",
4126            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4127                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4128            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4129            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4130            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4131            SIGMA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4132            EPSILON         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4133            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4134          ),
4135
4136
4137
4138          ECHANGE         =FACT(statut='f',max='**',
4139            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4140                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4141                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
4142                    ENSEMBLE('COEF_H','TEMP_EXT'),
4143                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
4144                    ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
4145            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4146            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4147            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4148            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4149            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4150            COEF_H_INF      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4151            TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4152            COEF_H_SUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4153            TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4154          ),
4155
4156
4157          SOURCE          =FACT(statut='f',max='**',
4158            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4159            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4160            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4161            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4162            SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4163          ),
4164
4165          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
4166            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4167                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4168                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
4169            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4170            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4171            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4172            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4173            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4174            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4175          ),
4176
4177          ECHANGE_PAROI   =FACT(statut='f',max='**',
4178            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4179                         UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4180            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4181            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4182            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4183            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4184            COEF_H          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4185            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4186            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4187            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4188          ),
4189
4190         LIAISON_DDL     =FACT(statut='f',max='**',
4191            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
4192            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
4193            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
4194            DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ),
4195            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
4196            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4197          ),
4198
4199          LIAISON_GROUP   =FACT(statut='f',max='**',
4200            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
4201                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
4202                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
4203                         EXCLUS('GROUP_MA_1','NOEUD_2'),
4204                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
4205                         EXCLUS('GROUP_NO_1','MAILLE_2'),
4206                         EXCLUS('MAILLE_1','GROUP_NO_2'),
4207                         EXCLUS('MAILLE_1','NOEUD_2'),
4208                         EXCLUS('NOEUD_1','GROUP_MA_2'),
4209                         EXCLUS('NOEUD_1','MAILLE_2'),
4210                         EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
4211            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4212            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4213            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4214            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4215            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4216            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4217            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4218            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4219            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4220            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4221            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4222                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4223            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
4224            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4225                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4226            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
4227            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4228            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4229            TRAN            =SIMP(statut='f',typ='R',max='**'),
4230            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4231            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4232          ),
4233
4234          LIAISON_UNIF    =FACT(statut='f',max='**',
4235            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4236            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4237            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4238            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4239            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4240            DDL             =SIMP(statut='f',typ='TXM',defaut="TEMP",
4241                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4242          ),
4243
4244          CONVECTION      =FACT(statut='f',max='**',
4245            VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
4246          ),
4247
4248          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4249 )  ;
4250 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
4251 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4252 # ======================================================================
4253 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
4254 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4255 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4256 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4257 # (AT YOUR OPTION) ANY LATER VERSION.
4258 #
4259 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4260 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4261 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4262 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4263 #
4264 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4265 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4266 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4267 # ======================================================================
4268 # RESPONSABLE PELLET J.PELLET
4269 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
4270                    fr="Affecter des matériaux à des zones géométriques d'un maillage",
4271                          reentrant='n',
4272             UIinfo={"groupes":("Modélisation",)},
4273          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
4274          MODELE          =SIMP(statut='f',typ=modele_sdaster),
4275
4276          #  affectation du nom du matériau (par mailles):
4277          #  ----------------------------------------------
4278          AFFE            =FACT(statut='o',max='**',
4279            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4280            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4281            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4282            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4283            MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
4284          ),
4285
4286          #  affectation de comportement (multifibres pour l'instant):
4287          #  ----------------------------------------------
4288          AFFE_COMPOR        =FACT(statut='f',max='**',
4289            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4290            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4291            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4292            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4293            COMPOR          =SIMP(statut='o',typ=compor_sdaster,max=1),
4294          ),
4295
4296          #  affectation des variables de commande :
4297          #  --------------------------------------------------
4298          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
4299          LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA",
4300                                                            "M_ACIER","M_ZIRC","NEUT1","NEUT2")),
4301
4302          AFFE_VARC    =FACT(statut='f',max='**',
4303           regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4304                   PRESENT_ABSENT('GROUP_MA','TOUT'),
4305                   PRESENT_ABSENT('MAILLE','TOUT'),
4306                   AU_MOINS_UN('EVOL','CHAMP_GD','VALE_REF'),
4307                   EXCLUS('EVOL','CHAMP_GD'),
4308                   ),
4309
4310           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut]
4311           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4312           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4313
4314           NOM_VARC        =SIMP(statut='o',typ='TXM', 
4315 #                                     champ dans la doc   into=("TEMP","CORR","IRRA","HYDR_ELNO","META_ELNO","NEUT")
4316 #                                     champ dans rscrsd   into=("IRRA","TEMP","HYDR_ELNO","HYDR_NOEU","EPSA_ELNO","META_ELNO")
4317                                                             ),
4318           CHAMP_GD        =SIMP(statut='f',typ=cham_gd_sdaster,),
4319           EVOL            =SIMP(statut='f',typ=evol_sdaster,),
4320
4321           B_EVOL          =BLOC(condition="EVOL!=None",
4322               NOM_CHAM      =SIMP(statut='f',typ='TXM',into=("TEMP","CORR","IRRA","NEUT"
4323                                                              "HYDR_ELNO","HYDR_NOEU",
4324                                                              "META_ELNO","META_NOEU",
4325                                                              "EPSA_ELNO","EPSA_NOEU",)),
4326               PROL_DROITE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4327               PROL_GAUCHE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4328               FONC_INST     =SIMP(statut='f',typ=(fonction_sdaster,formule)),
4329           ),
4330           VALE_REF          =SIMP(statut='f',typ='R'),
4331          ),
4332
4333          #  mots clés cachés pour les variables de commande NEUTi :
4334          #  -------------------------------------------------------
4335          VARC_NEUT1   =FACT(statut='d',
4336            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT1"),
4337            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4338            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4339            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")),
4340          ),
4341          VARC_NEUT2   =FACT(statut='d',
4342            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT2"),
4343            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4344            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4345            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")),
4346          ),
4347
4348          #  mots clés cachés pour variable de commande TEMP :
4349          #  --------------------------------------------------
4350          VARC_TEMP    =FACT(statut='d',
4351            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="TEMP"),
4352            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4353            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4354            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4355            VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
4356          ),
4357
4358          #  mots clés cachés pour variable de commande SECH :
4359          #  --------------------------------------------------
4360          VARC_SECH    =FACT(statut='d',
4361            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="SECH"),
4362            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4363            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4364            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)),
4365          ),
4366
4367          #  mots clés cachés pour variable de commande HYDR :
4368          #  --------------------------------------------------
4369          VARC_HYDR    =FACT(statut='d',
4370            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="HYDR"),
4371            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="HYDR_R"),
4372            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4373            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4374          ),
4375
4376          #  mots clés cachés pour variable de commande CORR :
4377          #  --------------------------------------------------
4378          VARC_CORR    =FACT(statut='d',
4379            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="CORR"),
4380            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="CORR_R"),
4381            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
4382            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
4383          ),
4384
4385          #  mots clés cachés pour variable de commande IRRA :
4386          #  --------------------------------------------------
4387          VARC_IRRA    =FACT(statut='d',
4388            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="IRRA"),
4389            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="IRRA_R"),
4390            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
4391            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
4392          ),
4393
4394          #  mots clés cachés pour variable de commande EPSA :
4395          #  --------------------------------------------------
4396          VARC_EPSA    =FACT(statut='d',
4397            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="EPSA"),
4398            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
4399            CMP_GD          =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
4400            CMP_VARC        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)),
4401          ),
4402          #  mots clés cachés pour variable de commande metallurgique ACIER :
4403          #  -----------------------------------------------------------------
4404          VARC_M_ACIER  =FACT(statut='d',
4405            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ACIER"),
4406            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
4407            CMP_GD          =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")),
4408            CMP_VARC        =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE",
4409                                                                           "PMARTENS","TAUSTE","TRANSF","TACIER",)),
4410          ),
4411          #  mots clés cachés pour variable de commande metallurgique ZIRCALOY :
4412          #  --------------------------------------------------------------------
4413          VARC_M_ZIRC  =FACT(statut='d',
4414            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"),
4415            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
4416            CMP_GD          =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("V1","V2","V3","V4")),
4417            CMP_VARC        =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("ALPHPUR","ALPHBETA","TZIRC","TEMPS")),
4418          ),
4419
4420          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
4421 )  ;
4422
4423
4424 #& MODIF COMMANDE  DATE 22/03/2011   AUTEUR DESOZA T.DESOZA 
4425 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4426 # ======================================================================
4427 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
4428 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4429 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4430 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4431 # (AT YOUR OPTION) ANY LATER VERSION.
4432 #
4433 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4434 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4435 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4436 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4437 #
4438 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4439 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4440 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4441 # ======================================================================
4442 # RESPONSABLE PELLET J.PELLET
4443 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
4444             UIinfo={"groupes":("Modélisation",)},
4445                  fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n',
4446          regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),UN_PARMI('MAILLAGE','GRILLE')),
4447          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
4448          GRILLE          =SIMP(statut='f',typ=grille_sdaster),
4449          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
4450          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
4451 #
4452 #====
4453 # Définition des grandeurs caractéristiques
4454 #====
4455 #
4456          GRANDEUR_CARA =FACT(statut='f',max=1,
4457          fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM",
4458          ang="Characteristic data for HM error estimators adimensionalisation",
4459 #
4460             LONGUEUR      =SIMP(statut='f',typ='R',val_min=0,
4461                                 fr ="Longueur caractéristique",
4462                                 ang="Characteristic length",),
4463             PRESSION      =SIMP(statut='f',typ='R',val_min=0,
4464                                 fr ="Pression caractéristique",
4465                                 ang="Characteristic pressure",),
4466             TEMPERATURE   =SIMP(statut='f',typ='R',val_min=0,
4467                                 fr ="Température caractéristique",
4468                                 ang="Characteristic temperature",),),
4469 #
4470          AFFE_SOUS_STRUC =FACT(statut='f',
4471            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
4472            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4473            SUPER_MAILLE    =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
4474            PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
4475          ),
4476          AFFE            =FACT(statut='f',max='**',
4477            regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
4478            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4479            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4480            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4481            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4482            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4483            PHENOMENE       =SIMP(statut='o',typ='TXM',
4484                                  into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
4485                 b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
4486                                         fr="modélisations mécaniques",
4487                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4488                                   "2D_DIS_T",        # RESP. : FLEJOU J.L.FLEJOU
4489                                   "2D_DIS_TR",       # RESP. : FLEJOU J.L.FLEJOU
4490                                   "2D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
4491                                   "2D_FLUI_PESA",    # RESP. : GREFFET N.GREFFET
4492                                   "2D_FLUI_STRU",    # RESP. : GREFFET N.GREFFET
4493                                   "2D_FLUIDE",       # RESP. : GREFFET N.GREFFET
4494                                   "3D",              # RESP. : DESROCHES X.DESROCHES
4495                                   "3D_ABSO",         # RESP. : DEVESA G.DEVESA
4496                                   "3D_FAISCEAU",     # RESP. : VOLDOIRE F.VOLDOIRE
4497                                   "3D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
4498                                   "3D_FLUIDE",       # RESP. : GREFFET N.GREFFET
4499                                   "3D_INCO",         # RESP. : MICHEL S.MICHEL
4500                                   "3D_INCO_UP",      # RESP. : SFAYOLLE
4501                                   "3D_INCO_GD",      # RESP. : MICHEL S.MICHEL
4502                                   "3D_SI",           # RESP. : DESROCHES X.DESROCHES
4503                                   "3D_GRAD_EPSI",    # RESP. : MICHEL S.MICHEL
4504                                   "3D_GRAD_VARI",    # RESP. : MICHEL S.MICHEL
4505                                   "3D_GVNO",         # RESP. : BEAURAIN J.BEAURAIN
4506                                   "3D_XFEM_CONT",    # RESP. : GENIAUT S.GENIAUT
4507                                   "3D_JOINT",        # RESP. : LAVERNE J.LAVERNE
4508                                   "3D_JOINT_HYME",   # RESP. : LAVERNE J.LAVERNE
4509                                   "3D_INTERFACE",    # RESP. : LAVERNE J.LAVERNE
4510                                   "AXIS",            # RESP. : LEFEBVRE J.P.LEFEBVRE
4511                                   "AXIS_FLUI_STRU",  # RESP. : GREFFET N.GREFFET
4512                                   "AXIS_FLUIDE",     # RESP. : GREFFET N.GREFFET
4513                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
4514                                   "AXIS_INCO",       # RESP. : MICHEL S.MICHEL
4515                                   "AXIS_INCO_UP",    # RESP. : SFAYOLLE
4516                                   "AXIS_INCO_GD",    # RESP. : MICHEL S.MICHEL
4517                                   "AXIS_SI",         # RESP. : DESROCHES X.DESROCHES
4518                                   "AXIS_GRAD_VARI",  # RESP. : MICHEL S.MICHEL
4519                                   "AXIS_GVNO",       # RESP. : BEAURAIN J.BEAURAIN
4520                                   "AXIS_JOINT",      # RESP. : LAVERNE J.LAVERNE
4521                                   "AXIS_INTERFACE",  # RESP. : LAVERNE J.LAVERNE
4522                                   "AXIS_ELDI",       # RESP. : LAVERNE J.LAVERNE
4523                                   "BARRE",           # RESP. : FLEJOU J.L.FLEJOU
4524                                   "2D_BARRE",        # RESP. : FLEJOU J.L.FLEJOU
4525                                   "C_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
4526                                   "C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
4527                                   "C_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
4528                                   "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
4529                                   "CABLE",           # RESP. : FLEJOU J.L.FLEJOU
4530                                   "CABLE_POULIE",    # RESP. : None
4531                                   "COQUE_3D",        # RESP. : DESROCHES X.DESROCHES
4532                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
4533                                   "COQUE_C_PLAN",    # RESP. : DESROCHES X.DESROCHES
4534                                   "COQUE_D_PLAN",    # RESP. : DESROCHES X.DESROCHES
4535                                   "D_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
4536                                   "D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
4537                                   "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
4538                                   "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL
4539                                   "D_PLAN_GVNO",     # RESP. : BEAURAIN J.BEAURAIN
4540                                   "D_PLAN_GRAD_SIGM",# RESP. : GRANET S.GRANET
4541                                   "PLAN_JOINT",      # RESP. : LAVERNE J.LAVERNE
4542                                   "PLAN_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE
4543                                   "PLAN_INTERFACE",  # RESP. : LAVERNE J.LAVERNE
4544                                   "PLAN_ELDI",       # RESP. : LAVERNE J.LAVERNE
4545                                   "D_PLAN_ABSO",     # RESP. : DEVESA G.DEVESA
4546                                   "D_PLAN_INCO",     # RESP. : MICHEL S.MICHEL
4547                                   "D_PLAN_INCO_UP",  # RESP. : SFAYOLLE
4548                                   "D_PLAN_INCO_GD",  # RESP. : MICHEL S.MICHEL
4549                                   "D_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
4550                                   "DIS_T",           # RESP. : FLEJOU J.L.FLEJOU
4551                                   "DIS_TR",          # RESP. : FLEJOU J.L.FLEJOU
4552                                   "DKT",             # RESP. : DESROCHES X.DESROCHES
4553                                   "DKTG",            # RESP. : MARKOVIC D.MARKOVIC
4554                                   "DST",             # RESP. : DESROCHES X.DESROCHES
4555                                   "FLUI_STRU",       # RESP. : GREFFET N.GREFFET
4556                                   "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS
4557                                   "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS
4558                                   "POU_C_T",         # RESP. : FLEJOU J.L.FLEJOU
4559                                   "POU_D_E",         # RESP. : FLEJOU J.L.FLEJOU
4560                                   "POU_D_EM",        # RESP. : FLEJOU J.L.FLEJOU
4561                                   "POU_D_T",         # RESP. : FLEJOU J.L.FLEJOU
4562                                   "POU_D_T_GD",      # RESP. : FLEJOU J.L.FLEJOU
4563                                   "POU_D_TG",        # RESP. : FLEJOU J.L.FLEJOU
4564                                   "POU_D_TGM",       # RESP. : FLEJOU J.L.FLEJOU
4565                                   "Q4G",             # RESP. : DESROCHES X.DESROCHES
4566                                   "TUYAU_3M",        # RESP. : PROIX J.M.PROIX
4567                                   "TUYAU_6M",        # RESP. : PROIX J.M.PROIX
4568                                   "SHB",             # RESP. : DESROCHES X.DESROCHES
4569                                   "D_PLAN_HHM",      # RESP. : GRANET S.GRANET
4570                                   "D_PLAN_HM",       # RESP. : GRANET S.GRANET
4571                                   "D_PLAN_THM",      # RESP. : GRANET S.GRANET
4572                                   "D_PLAN_HHMD",     # RESP. : GRANET S.GRANET
4573                                   "D_PLAN_HH2MD",    # RESP. : GRANET S.GRANET
4574                                   "D_PLAN_HMD",      # RESP. : GRANET S.GRANET
4575                                   "D_PLAN_THHD",     # RESP. : GRANET S.GRANET
4576                                   "D_PLAN_THH2D",    # RESP. : GRANET S.GRANET
4577                                   "D_PLAN_THVD",     # RESP. : GRANET S.GRANET
4578                                   "D_PLAN_THH2MD",   # RESP. : GRANET S.GRANET
4579                                   "D_PLAN_THHMD",    # RESP. : GRANET S.GRANET
4580                                   "D_PLAN_THMD",     # RESP. : GRANET S.GRANET
4581                                   "D_PLAN_HHMS",     # RESP. : GRANET S.GRANET
4582                                   "D_PLAN_HH2MS",    # RESP. : GRANET S.GRANET
4583                                   "D_PLAN_HMS",      # RESP. : GRANET S.GRANET
4584                                   "D_PLAN_THHS",     # RESP. : GRANET S.GRANET
4585                                   "D_PLAN_THH2S",    # RESP. : GRANET S.GRANET
4586                                   "D_PLAN_THVS",     # RESP. : GRANET S.GRANET
4587                                   "D_PLAN_THH2MS",   # RESP. : GRANET S.GRANET
4588                                   "D_PLAN_THHMS",    # RESP. : GRANET S.GRANET
4589                                   "D_PLAN_THMS",     # RESP. : GRANET S.GRANET
4590                                   "D_PLAN_HM_P",     # RESP. : GRANET S.GRANET
4591                                   "D_PLAN_HS",       # RESP. : GRANET S.GRANET
4592                                   "D_PLAN_HHD",      # RESP. : GRANET S.GRANET
4593                                   "D_PLAN_HHS",      # RESP. : GRANET S.GRANET
4594                                   "D_PLAN_HH2D",     # RESP. : GRANET S.GRANET
4595                                   "D_PLAN_HH2S",     # RESP. : GRANET S.GRANET
4596                                   "D_PLAN_2DG",      # RESP. : GRANET S.GRANET
4597                                   "D_PLAN_DIL",      # RESP. : GRANET S.GRANET
4598                                   "AXIS_THM",        # RESP. : GRANET S.GRANET
4599                                   "AXIS_HHM",        # RESP. : GRANET S.GRANET
4600                                   "AXIS_HM",         # RESP. : GRANET S.GRANET
4601                                   "AXIS_HH2MD",      # RESP. : GRANET S.GRANET
4602                                   "AXIS_HHMD",       # RESP. : GRANET S.GRANET
4603                                   "AXIS_HMD",        # RESP. : GRANET S.GRANET
4604                                   "AXIS_THHD",       # RESP. : GRANET S.GRANET
4605                                   "AXIS_THH2D",      # RESP. : GRANET S.GRANET
4606                                   "AXIS_THVD",       # RESP. : GRANET S.GRANET
4607                                   "AXIS_THHMD",      # RESP. : GRANET S.GRANET
4608                                   "AXIS_THH2MD",     # RESP. : GRANET S.GRANET
4609                                   "AXIS_THMD",       # RESP. : GRANET S.GRANET
4610                                   "AXIS_HH2MS",      # RESP. : GRANET S.GRANET
4611                                   "AXIS_HHMS",       # RESP. : GRANET S.GRANET
4612                                   "AXIS_HMS",        # RESP. : GRANET S.GRANET
4613                                   "AXIS_THHS",       # RESP. : GRANET S.GRANET
4614                                   "AXIS_THH2S",      # RESP. : GRANET S.GRANET
4615                                   "AXIS_THVS",       # RESP. : GRANET S.GRANET
4616                                   "AXIS_THHMS",      # RESP. : GRANET S.GRANET
4617                                   "AXIS_THH2MS",     # RESP. : GRANET S.GRANET
4618                                   "AXIS_THMS",       # RESP. : GRANET S.GRANET
4619                                   "AXIS_HHD",        # RESP. : GRANET S.GRANET
4620                                   "AXIS_HHS",        # RESP. : GRANET S.GRANET
4621                                   "AXIS_HH2D",       # RESP. : GRANET S.GRANET
4622                                   "AXIS_HH2S",       # RESP. : GRANET S.GRANET
4623                                   "3D_HHM" ,         # RESP. : GRANET S.GRANET
4624                                   "3D_HM",           # RESP. : GRANET S.GRANET
4625                                   "3D_THHM",         # RESP. : GRANET S.GRANET
4626                                   "3D_THM",          # RESP. : GRANET S.GRANET
4627                                   "3D_HHMD",         # RESP. : GRANET S.GRANET
4628                                   "3D_HMD",          # RESP. : GRANET S.GRANET
4629                                   "3D_THHD",         # RESP. : GRANET S.GRANET
4630                                   "3D_THVD",         # RESP. : GRANET S.GRANET
4631                                   "3D_THHMD",        # RESP. : GRANET S.GRANET
4632                                   "3D_THMD",         # RESP. : GRANET S.GRANET
4633                                   "3D_HHMS",         # RESP. : GRANET S.GRANET
4634                                   "3D_HMS",          # RESP. : GRANET S.GRANET
4635                                   "3D_THHS",         # RESP. : GRANET S.GRANET
4636                                   "3D_THVS",         # RESP. : GRANET S.GRANET
4637                                   "3D_THHMS",        # RESP. : GRANET S.GRANET
4638                                   "3D_THMS",         # RESP. : GRANET S.GRANET
4639                                   "3D_THH2MD",       # RESP. : GRANET S.GRANET
4640                                   "3D_THH2MS",       # RESP. : GRANET S.GRANET
4641                                   "3D_HH2MD",        # RESP. : GRANET S.GRANET
4642                                   "3D_HH2MS",        # RESP. : GRANET S.GRANET
4643                                   "3D_THH2S",        # RESP. : GRANET S.GRANET
4644                                   "3D_THH2D",        # RESP. : GRANET S.GRANET
4645                                   "3D_HS",           # RESP. : GRANET S.GRANET
4646                                   "3D_HHD",          # RESP. : GRANET S.GRANET
4647                                   "3D_HHS",          # RESP. : GRANET S.GRANET
4648                                   "3D_HH2D",         # RESP. : GRANET S.GRANET
4649                                   "3D_HH2S",         # RESP. : GRANET S.GRANET
4650                                   "VF1",             # RESP. : GRANET S.GRANET
4651                                   "3D_HH2SUDM",      # RESP. : GRANET S.GRANET
4652                                   "3D_HH2SUDA",      # RESP. : GRANET S.GRANET
4653                                   "3D_HH2SUC",       # RESP. : GRANET S.GRANET
4654                                   "D_PLAN_HH2SUDM",  # RESP. : GRANET S.GRANET
4655                                   "D_PLAN_HH2SUC",   # RESP. : GRANET S.GRANET
4656                                   "D_PLAN_HH2SUDA",  # RESP. : GRANET S.GRANET
4657                                   "PLAN_JHMS",
4658                                   "AXIS_JHMS",
4659                                                                       )  )  ),
4660
4661                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
4662                                         fr="modélisations thermiques",
4663                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4664                                   "3D",              # RESP. : DURAND C.DURAND
4665                                   "3D_DIAG",         # RESP. : DURAND C.DURAND
4666                                   "AXIS",            # RESP. : DURAND C.DURAND
4667                                   "AXIS_DIAG",       # RESP. : DURAND C.DURAND
4668                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
4669                                   "COQUE",           # RESP. : DESROCHES X.DESROCHES
4670                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
4671                                   "COQUE_PLAN",      # RESP. : DESROCHES X.DESROCHES
4672                                   "PLAN",            # RESP. : DURAND C.DURAND
4673                                   "PLAN_DIAG",       # RESP. : DURAND C.DURAND
4674                                                                       ),),),
4675
4676                 b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
4677                                         fr="modélisations acoustiques",
4678                      MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4679                                   "3D",              # RESP. : None
4680                                   "PLAN"             # RESP. : None
4681                                                                        ), ),),
4682
4683          ),
4684
4685          PARTITION         =FACT(statut='d',
4686              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM",
4687                                    into=("MAIL_CONTIGU","MAIL_DISPERSE","CENTRALISE","GROUP_ELEM")),
4688              b_dist_maille          =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')",
4689                  CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0,val_max=100),
4690              ),
4691          ),
4692
4693          VERI_JACOBIEN  =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',
4694                               fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",),
4695 ) ;
4696 #& MODIF COMMANDE  DATE 25/01/2011   AUTEUR PELLET J.PELLET 
4697 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4698 # ======================================================================
4699 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
4700 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
4701 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
4702 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
4703 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
4704 #                                                                       
4705 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
4706 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
4707 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
4708 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
4709 #                                                                       
4710 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
4711 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
4712 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
4713 # ======================================================================
4714 # RESPONSABLE PELLET J.PELLET
4715
4716 def appl_cine_matr_prod(MATR_ASSE,**args):
4717   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
4718   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
4719   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
4720   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
4721   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
4722   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
4723   raise AsException("type de concept resultat non prevu")
4724
4725 APPL_CINE_MATR=OPER(nom="APPL_CINE_MATR",op=158,sd_prod=appl_cine_matr_prod,
4726                fr="Appliquer les C.L. cinématiques sur la matrice",
4727                reentrant='f', UIinfo={"groupes":("Résolution",)},
4728          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
4729                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
4730          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
4731          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
4732 )  ;
4733 #& MODIF COMMANDE  DATE 25/01/2011   AUTEUR PELLET J.PELLET 
4734 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4735 # ======================================================================
4736 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
4737 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
4738 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
4739 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
4740 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
4741 #                                                                       
4742 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
4743 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
4744 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
4745 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
4746 #                                                                       
4747 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
4748 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
4749 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
4750 # ======================================================================
4751 # RESPONSABLE PELLET J.PELLET
4752
4753 APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentrant='f',
4754                fr="Application des C.L. cinématiques au second membre",
4755                UIinfo={"groupes":("Résolution",)},
4756          CHAM_NO        =SIMP(statut='o',typ=cham_no_sdaster),
4757          MATR           =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
4758                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
4759          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
4760
4761          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
4762          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
4763 )  ;
4764 #& MODIF COMMANDE  DATE 03/01/2011   AUTEUR ANDRIAM H.ANDRIAMBOLOLONA 
4765 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4766 # ======================================================================
4767 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
4768 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
4769 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
4770 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
4771 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
4772 #                                                                       
4773 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
4774 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
4775 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
4776 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
4777 #                                                                       
4778 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
4779 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
4780 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
4781 # ======================================================================
4782 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
4783
4784 from Macro.asse_elem_ssd_ops import asse_elem_ssd_ops
4785
4786 def asse_elem_ssd_prod(self,RESU_ASSE_SSD,**args):
4787     MTYPES = {
4788         'MODELE' : modele_gene,
4789         'NUME_DDL_GENE' : nume_ddl_gene,
4790         'RIGI_GENE' : matr_asse_gene_r,
4791         'MASS_GENE' : matr_asse_gene_r,
4792               }
4793     for res in RESU_ASSE_SSD:
4794         for mc, typ in MTYPES.items():
4795             if res[mc]:
4796                 self.type_sdprod(res[mc], typ)
4797     return None
4798
4799 ASSE_ELEM_SSD=MACRO(nom="ASSE_ELEM_SSD",
4800         op=asse_elem_ssd_ops,
4801         sd_prod=asse_elem_ssd_prod,
4802         reentrant='n',
4803         fr="Enchainer les commandes DEFI_MODELE_GENE, NUME_DDL_GENE et ASSE_MATR_GENE",
4804         UIinfo={"groupes":("Matrices/vecteurs",)},
4805
4806 # pour les concepts de sortie
4807         RESU_ASSE_SSD = FACT( statut='o', max=1,
4808                           regles=(PRESENT_PRESENT('RIGI_GENE','NUME_DDL_GENE'),
4809                                   PRESENT_PRESENT('MASS_GENE','NUME_DDL_GENE'),),
4810                               MODELE=SIMP(statut='o',typ=CO,defaut=None),
4811                               NUME_DDL_GENE=SIMP(statut='f',typ=CO,defaut=None),
4812                               RIGI_GENE=SIMP(statut='f',typ=CO,defaut=None),
4813                               MASS_GENE=SIMP(statut='f',typ=CO,defaut=None),
4814                            ),
4815
4816         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
4817
4818 # pour DEFI_MODELE_GENE
4819         SOUS_STRUC      =FACT(statut='o',max='**',
4820            NOM             =SIMP(statut='o',typ='TXM' ),
4821            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
4822            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4823            TRANS           =SIMP(statut='f',typ='R',max=3),
4824          ),
4825         LIAISON         =FACT(statut='o',max='**',
4826            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
4827            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
4828            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
4829            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
4830            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
4831                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
4832            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4833            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4834            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4835            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4836            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
4837          ),
4838         VERIF           =FACT(statut='d',max=1,
4839            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
4840            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
4841            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
4842          ),
4843
4844
4845 # pour NUME_DDL_GENE
4846         METHODE      =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","ELIMINE") ),
4847         STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
4848
4849 )  ;
4850 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
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 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
4870                    fr="Assembler deux maillages pour en former un nouveau",
4871                    reentrant='n',
4872                    UIinfo={"groupes":("Maillage",)},
4873          MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
4874          MAILLAGE_2 =  SIMP(statut='o',typ=maillage_sdaster,),
4875          OPERATION  =  SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),),
4876          b_collage  =  BLOC(condition = "OPERATION == 'COLLAGE'",
4877            COLLAGE  =  FACT(statut='o',
4878               GROUP_MA_1     =SIMP(statut='o',typ=grma),
4879               GROUP_MA_2     =SIMP(statut='o',typ=grma),
4880                              ),
4881                            ),
4882 )  ;
4883 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
4884 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4885 # ======================================================================
4886 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4887 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4888 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4889 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4890 # (AT YOUR OPTION) ANY LATER VERSION.
4891 #
4892 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4893 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4894 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4895 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4896 #
4897 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4898 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4899 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4900 # ======================================================================
4901 # RESPONSABLE BODEL C.BODEL
4902 def asse_matr_gene_prod(METHODE,**args):
4903     if   (METHODE=="INITIAL") : return matr_asse_gene_r
4904     elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c
4905     else : return matr_asse_gene_r
4906
4907 ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod,
4908                     fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée",
4909                     reentrant='n',
4910             UIinfo={"groupes":("Matrices et vecteurs",)},
4911          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
4912          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
4913          b_option     =BLOC(condition = "METHODE == 'CLASSIQUE'",
4914            OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ),
4915            ),
4916 )  ;
4917 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
4918 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4919 # ======================================================================
4920 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4921 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4922 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4923 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4924 # (AT YOUR OPTION) ANY LATER VERSION.
4925 #
4926 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4927 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4928 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4929 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4930 #
4931 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4932 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4933 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4934 # ======================================================================
4935 # RESPONSABLE PELLET J.PELLET
4936 def asse_matrice_prod(MATR_ELEM,**args):
4937   if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
4938   if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
4939   if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
4940   if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
4941   raise AsException("type de concept resultat non prevu")
4942
4943 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
4944                   fr="Construction d'une matrice assemblée",reentrant='n',
4945             UIinfo={"groupes":("Matrices et vecteurs",)},
4946          MATR_ELEM       =SIMP(statut='o',
4947                                typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
4948          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster),
4949          SYME            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4950          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
4951          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
4952 )  ;
4953 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
4954 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4955 # ======================================================================
4956 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4957 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4958 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4959 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4960 # (AT YOUR OPTION) ANY LATER VERSION.
4961 #
4962 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4963 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4964 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4965 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4966 #
4967 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4968 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4969 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4970 # ======================================================================
4971 # RESPONSABLE BODEL C.BODEL
4972 ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
4973                     fr="Projection des chargements sur la base modale d'une sous structure",
4974                     reentrant='n',
4975             UIinfo={"groupes":("Matrices et vecteurs",)},
4976          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
4977          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
4978          b_nume     =BLOC(condition = "METHODE == 'CLASSIQUE'",
4979              CHAR_SOUS_STRUC =FACT(statut='o',max='**',
4980              SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
4981              VECT_ASSE       =SIMP(statut='o',typ=cham_no_sdaster ),
4982            ),
4983          ),
4984 )  ;
4985 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
4986 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4987 # ======================================================================
4988 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4989 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4990 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4991 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4992 # (AT YOUR OPTION) ANY LATER VERSION.
4993 #
4994 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4995 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4996 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4997 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4998 #
4999 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5000 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5001 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5002 # ======================================================================
5003 # RESPONSABLE PELLET J.PELLET
5004
5005 ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster,
5006                   fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n',
5007             UIinfo={"groupes":("Matrices et vecteurs",)},
5008          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
5009          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
5010          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
5011 )  ;
5012 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
5013 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5014 # ======================================================================
5015 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5016 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5017 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5018 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5019 # (AT YOUR OPTION) ANY LATER VERSION.
5020 #
5021 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5022 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5023 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5024 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5025 #
5026 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5027 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5028 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5029 # ======================================================================
5030 # RESPONSABLE DEVESA G.DEVESA
5031 CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
5032                      fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
5033                      reentrant='n',
5034             UIinfo={"groupes":("Résolution","Dynamique",)},
5035        regles=(EXCLUS('AMOR_RAYLEIGH','ENER_SOL',),
5036                EXCLUS('AMOR_RAYLEIGH','AMOR_INTERNE',),
5037                EXCLUS('AMOR_RAYLEIGH','AMOR_SOL',),
5038                PRESENT_PRESENT('ENER_SOL','AMOR_INTERNE'),
5039                PRESENT_PRESENT('ENER_SOL','AMOR_SOL'),
5040                ),
5041          AMOR_RAYLEIGH   =FACT(statut='f',
5042            AMOR_ALPHA      =SIMP(statut='o',typ='R'),
5043            AMOR_BETA       =SIMP(statut='o',typ='R'),
5044            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
5045          ),
5046          ENER_SOL        =FACT(statut='f',
5047            regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
5048                    PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
5049 #  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
5050                    PRESENT_PRESENT('KRX','KRY'),
5051                    PRESENT_PRESENT('KRX','KRZ'),
5052                    PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
5053                    PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
5054                    PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
5055            METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
5056            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
5057            GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5058            GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5059            FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5060            COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
5061            KX              =SIMP(statut='o',typ='R' ),
5062            KY              =SIMP(statut='o',typ='R' ),
5063            KZ              =SIMP(statut='o',typ='R' ),
5064            KRX             =SIMP(statut='f',typ='R' ),
5065            KRY             =SIMP(statut='f',typ='R' ),
5066            KRZ             =SIMP(statut='f',typ='R' ),
5067            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
5068            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
5069            COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
5070          ),
5071          AMOR_INTERNE    =FACT(statut='f',
5072            ENER_POT        =SIMP(statut='o',typ=table_sdaster ),
5073            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
5074            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
5075          ),
5076          AMOR_SOL        =FACT(statut='f',
5077            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
5078            FONC_AMOR_GEO   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
5079            HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5080            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
5081          ),
5082 )  ;
5083 #& MODIF COMMANDE  DATE 13/01/2011   AUTEUR PELLET J.PELLET 
5084 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5085 # ======================================================================
5086 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
5087 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5088 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5089 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5090 # (AT YOUR OPTION) ANY LATER VERSION.
5091 #
5092 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5093 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5094 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5095 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5096 #
5097 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5098 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5099 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5100 # ======================================================================
5101 # RESPONSABLE ASSIRE A.ASSIRE
5102
5103 CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem,
5104                     fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés",
5105                     reentrant='n',
5106             UIinfo={"groupes":("Résultats et champs","Post-traitements",)},
5107          MODELE          =SIMP(statut='o',typ=modele_sdaster),
5108          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
5109          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
5110
5111          regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
5112          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5113          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5114          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5115
5116 #
5117 #
5118 #  introduire un mot cle de type modelisation : mécanique,thermique,...
5119 #
5120
5121          OPTION          =SIMP(statut='o',typ='TXM',
5122                                into=("FLUX_ELGA","FLUX_ELNO",
5123                                      "PRAC_ELNO",
5124                                      "COOR_ELGA"), ),
5125
5126          b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO','FLUX_ELGA',)",
5127            TEMP            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5128          ),
5129
5130          b_acoustique  =BLOC(condition="OPTION in ('PRAC_ELNO',)",
5131            PRES            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5132          ),
5133
5134
5135
5136          EXCIT           =FACT(statut='f',max='**',
5137                regles=(EXCLUS('FONC_MULT','COEF_MULT', ),),
5138                CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)),
5139                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5140                COEF_MULT       =SIMP(statut='f',typ='R'), ),
5141
5142          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
5143          ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
5144          NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1),
5145          NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
5146          MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
5147          ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
5148 )  ;
5149 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
5150 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5151 # ======================================================================
5152 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5153 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5154 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5155 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5156 # (AT YOUR OPTION) ANY LATER VERSION.
5157 #
5158 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5159 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5160 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5161 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5162 #
5163 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5164 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5165 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5166 # ======================================================================
5167 # RESPONSABLE PELLET J.PELLET
5168
5169 CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster,
5170                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
5171                     reentrant='n',
5172             UIinfo={"groupes":("Matrices et vecteurs",)},
5173          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
5174          CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ),
5175          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
5176          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
5177 )  ;
5178 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
5179 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5180 # ======================================================================
5181 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5182 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5183 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5184 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5185 # (AT YOUR OPTION) ANY LATER VERSION.
5186 #
5187 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5188 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5189 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5190 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5191 #
5192 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5193 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5194 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5195 # ======================================================================
5196 # RESPONSABLE DEVESA G.DEVESA
5197 def calc_char_seisme_prod(MATR_MASS,**args ):
5198   if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster
5199   raise AsException("type de concept resultat non prevu")
5200
5201 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
5202                       reentrant='n',fr="Calcul du chargement sismique",
5203             UIinfo={"groupes":("Matrices et vecteurs",)},
5204          regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
5205          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
5206          DIRECTION       =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"),
5207          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5208          MODE_STAT       =SIMP(statut='f',typ=(mode_meca,) ),
5209          b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
5210            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
5211            NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
5212            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5213          ),
5214          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5215 )  ;
5216 #& MODIF COMMANDE  DATE 28/02/2011   AUTEUR BOTTONI M.BOTTONI 
5217 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5218 # ======================================================================
5219 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
5220 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5221 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5222 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5223 # (AT YOUR OPTION) ANY LATER VERSION.
5224 #
5225 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5226 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5227 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5228 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5229 #
5230 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5231 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5232 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5233 # ======================================================================
5234 # RESPONSABLE BOTTONI M.BOTTONI
5235
5236 from Macro.calc_ecrevisse_ops import calc_ecrevisse_ops
5237
5238 def calc_ecrevisse_prod(self,CHARGE_MECA,CHARGE_THER1,CHARGE_THER2,TABLE,DEBIT,**args):
5239
5240   self.type_sdprod(CHARGE_MECA,char_meca)
5241   self.type_sdprod(CHARGE_THER1,char_ther)
5242   self.type_sdprod(CHARGE_THER2,char_ther)
5243   self.type_sdprod(TABLE,table_sdaster)
5244   self.type_sdprod(DEBIT,table_sdaster)
5245   return None
5246
5247
5248
5249 CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE",op=calc_ecrevisse_ops,sd_prod=calc_ecrevisse_prod,reentrant='n',
5250                      UIinfo={"groupes":("Outils-métier",)},fr="Procedure de couplage avec Ecrevisse",
5251                       regles   = (UN_PARMI('LOGICIEL','VERSION'),),
5252
5253 #      CONCEPTS SORTANTS : 2 CHARGEMENTS THERMIQUE + 1 MECANIQUE + 2 TABLES POUR LE POST-TRAITEMENT
5254 #      ********************************************
5255          CHARGE_MECA        =SIMP(statut='o',typ=CO),
5256          CHARGE_THER1       =SIMP(statut='o',typ=CO),
5257          CHARGE_THER2       =SIMP(statut='o',typ=CO),
5258          TABLE              =SIMP(statut='o',typ=CO),
5259          DEBIT              =SIMP(statut='o',typ=CO),
5260
5261
5262 #      MODELES MECANIQUES
5263 #      ********************************************
5264          MODELE_MECA        =SIMP(statut='o',typ=modele_sdaster),
5265          MODELE_THER        =SIMP(statut='o',typ=modele_sdaster),
5266
5267
5268 #      DONNEES GEOMETRIQUES RELATIVES AUX RESULTATS
5269 #      ********************************************
5270          RESULTAT           =FACT(statut='o',min=1,max=1,
5271            MECANIQUE           =SIMP(statut='o',typ=resultat_sdaster),
5272            THERMIQUE           =SIMP(statut='o',typ=resultat_sdaster),
5273            regles=(EXCLUS('NUME_ORDRE','INST'),),
5274            NUME_ORDRE          =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5275            INST                =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5276          ),
5277
5278 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
5279 #      *******************************************
5280
5281          FISSURE            =FACT(statut='o',min=1,max='**',
5282            PREFIXE_FICHIER     =SIMP(statut='f',typ='TXM',validators=LongStr(1,8),),
5283            GROUP_MA            =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2,
5284                                      fr="Groupe(s) des noeuds definissant les levres de la fissure"),
5285            GROUP_NO_ORIG       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
5286            GROUP_NO_EXTR       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
5287            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ),
5288            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ),
5289            OUVERT_REMANENTE    =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"),
5290            TORTUOSITE          =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0,
5291                                        fr="Coefficient de tortuosite de la fissure" ),
5292            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ),
5293            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
5294              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
5295                                        fr="Liste des cotes des points definissant le petit axe de la section",
5296                                        validators=NoRepeat() ),
5297              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
5298                                        fr="Liste des valeurs des points definissant le petit axe de la section", ),
5299            ),
5300            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
5301              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
5302                                        fr="Liste des cotes des points definissant la largeur de la section",
5303                                        validators=NoRepeat() ),
5304              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
5305                                        fr="Liste des valeurs des points definissant la largeur de la section", ),
5306            ),
5307          ),
5308
5309
5310 #      DONNEES RELATIVES A L"ECOULEMENT
5311 #      ********************************
5312
5313          ECOULEMENT         =FACT(statut='o',min=1,max=1,
5314            PRES_ENTREE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
5315            PRES_SORTIE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
5316            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
5317            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee",
5318              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
5319            ),
5320            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique",
5321              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
5322            ),
5323            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee",
5324              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
5325            ),
5326            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee",
5327              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
5328              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
5329            ),
5330            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee",
5331              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
5332              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
5333            ),
5334            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul",
5335              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
5336            ),
5337          ),
5338
5339
5340 #      CHOIX DES MODELES
5341 #      *****************
5342
5343          MODELE_ECRE        =FACT(statut='o',min=1,max=1,
5344            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
5345                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
5346            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
5347                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
5348            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
5349              PRESS_EBULLITION    =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ),
5350            ),
5351            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ),
5352            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
5353              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ),
5354              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ),
5355            ),
5356
5357            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ),
5358            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
5359              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
5360              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
5361            ),
5362          ),
5363
5364
5365 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
5366 #      ********************************************
5367
5368          CONVERGENCE        =FACT(statut='o',min=1,max=1,
5369            KGTEST              =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
5370                                      fr="Parametre de l'algorithme iteratif [kgtest]" ),
5371            ITER_GLOB_MAXI      =SIMP(statut='f',typ='I',defaut= 400,
5372                                      fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
5373            CRIT_CONV_DEBI      =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
5374                                      fr="Critere de convergence en debit [precdb]" ),
5375          ),
5376
5377 #      GENERAL
5378 #      *******
5379
5380          COURBES            =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
5381                                   fr="Generation eventuelle des courbes" ),
5382          LOGICIEL           =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
5383          VERSION            =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")),
5384          ENTETE             =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
5385          IMPRESSION         =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
5386          INFO               =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
5387
5388 )  ;
5389 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
5390 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5391 # ======================================================================
5392 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
5393 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5394 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5395 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5396 # (AT YOUR OPTION) ANY LATER VERSION.
5397 #
5398 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5399 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5400 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5401 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5402 #
5403 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5404 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5405 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5406 # ======================================================================
5407 # RESPONSABLE ASSIRE A.ASSIRE
5408 def calc_elem_prod(RESULTAT,**args):
5409    if AsType(RESULTAT) != None : return AsType(RESULTAT)
5410    raise AsException("type de concept resultat non prevu")
5411
5412 CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
5413             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
5414             fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )",
5415      MODELE          =SIMP(statut='f',typ=modele_sdaster),
5416      CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
5417      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
5418
5419      RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
5420                                       fr="Résultat d'une commande globale"),
5421
5422      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
5423                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
5424                     ),
5425      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5426      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5427      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5428      NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
5429      NOM_CAS         =SIMP(statut='f',typ='TXM' ),
5430      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5431      FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5432      LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
5433      LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
5434      CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
5435      b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
5436          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
5437      b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
5438          PRECISION       =SIMP(statut='o',typ='R'),),
5439      LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
5440      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5441      GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
5442                            fr="le calcul ne sera effectué que sur ces mailles là"),
5443      MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
5444                            fr="le calcul ne sera effectué que sur ces mailles là"),
5445
5446 #    definition d'un repere local
5447
5448      REPE_COQUE      =FACT(statut='f',max='**',
5449                            fr="définiton du lieu de post-traitement",
5450                            regles=EXCLUS('ANGL_REP','VECTEUR'),
5451           TOUT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5452           GROUP_MA     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',),
5453           MAILLE       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',),
5454
5455           NUME_COUCHE  =SIMP(statut='f',typ='I',defaut= 1,
5456                              fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ),
5457           NIVE_COUCHE  =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
5458                              fr="position dans l'épaisseur de la coque, ou de la couche" ),
5459
5460           ANGLE        =SIMP(statut='f',typ='I',defaut= 0,
5461                              fr="angle de dépouillement pour les tuyaux, en degres à partir de la génératrice" ),
5462
5463           PLAN         =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
5464                                fr="Plan de calcul pour les plaques excentrées" ),
5465
5466           ANGL_REP     =SIMP(statut='f',typ='R',min=2,max=2,
5467                            fr="définition du repere de post-traitement, par défaut ANGL_REP=(0.,0.)"),
5468           VECTEUR      =SIMP(statut='f',typ='R',min=3,max=3,
5469                            fr="définition du repere de post-traitement, par défaut VECTEUR=(1.,0.,0.)"),
5470                             ),
5471
5472 #    options pour des resultats lineaires
5473
5474      b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\
5475                                                          comb_fourier,mult_elas,fourier_elas,mode_flamb)",
5476                                                                fr="options mecaniques lineaires",
5477           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires",
5478                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES",
5479                                  "INDI_ERREUR","AUTRES","TOUTES"),
5480                            ),
5481           b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
5482                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO",
5483                               #  contraintes
5484                            into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA",
5485                                   "SIPO_ELNO","EFGE_ELNO","EFCA_ELNO","SICA_ELNO",
5486                                   "SITU_ELNO","SIRO_ELEM","SIPM_ELNO",
5487                               # déformations
5488                                  "EPSI_ELNO","EPSI_ELGA","EPSG_ELGA","EPSG_ELNO",
5489                                  "EPME_ELNO","EPME_ELGA","DEGE_ELNO","EPTU_ELNO",
5490                                  "EPVC_ELNO","EPVC_ELGA",
5491                               #  ENER
5492                                  "EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO",
5493                                  "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO",
5494                               #  estimateurs erreur
5495                                  "SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA","ERZ2_ELEM",
5496                                  "ERME_ELEM","ERME_ELNO",
5497                                  "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM",
5498                                  "SING_ELEM","SING_ELNO",
5499                               #  CRIT
5500                                  "SIEQ_ELNO","SIEQ_ELGA","CRIT_ELNO",
5501                                  "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA",
5502                                  "ENDO_ELGA","ENDO_ELNO",
5503                                  "SITQ_ELNO","EPTQ_ELNO",
5504                               #  autres
5505                                  "SPMX_ELGA","PRME_ELNO","VARC_ELGA"),),
5506
5507 #              Les 2 mots cles suivants ne sont utiles qu' a l'option SPMX_ELGA
5508 #              mais  on est obligé de les laisser ici a cause des blocs
5509                NOM_CHAM  =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"),
5510                                fr="nom du champ pour SPMX_ELGA",),
5511                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="nom de la composante pour SPMX_ELGA",  ),
5512
5513                 b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \
5514                                         (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \
5515                                         (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \
5516                                         (type(OPTION)==type(()) and 'QIZ2_ELEM' in OPTION)",
5517                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5518
5519                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5520                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5521                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
5522                                   fr="precision demandee pour calculer la carte de taille des elements"),
5523                     TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM",
5524                                                               "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",),
5525                                    fr="choix de l'estimateur d'erreur"),),
5526
5527                EXCIT           =FACT(statut='f',max='**',
5528                                      fr="Charges contenant les températures, les efforts répartis pour les poutres...",
5529                                      regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5530                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca) ),
5531                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5532                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5533                     COEF_MULT       =SIMP(statut='f',typ='R'),
5534                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5535                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5536                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5537                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5538
5539
5540                             ),
5541 #             fin bloc b_toutes
5542
5543           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5544                                      fr="options de contraintes elasticite 2D et 3D",
5545               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO',
5546                             fr="option de calcul des contraintes",
5547                            into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA",),),
5548
5549                     b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO','SIEF_ELGA',) or \
5550                                       (type(OPTION)==type(()) and  'SIGM_ELNO' in OPTION ) or \
5551                                       (type(OPTION)==type(()) and  'SIEF_ELGA' in OPTION ) ",
5552                                       fr="charge contenant les temperatures ou autre charge",
5553                          EXCIT           =FACT(statut='f',max='**',
5554                          CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca) ),),
5555                                     ),
5556                                   ),
5557
5558           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5559                                       fr="options de contraintes elasticite poutres, coques, tuyaux",
5560                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO',
5561                             fr="option de calcul des contraintes ou efforts generalises",
5562                             into=( "SIEF_ELNO","SIGM_ELNO","SIEF_ELGA","SITU_ELNO",
5563                                    "SIPO_ELNO","EFGE_ELNO","EFCA_ELNO","SICA_ELNO",
5564                                    ),),
5565
5566                b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO','SIEF_ELGA',\
5567                                                        'SIPO_ELNO','EFGE_ELNO',) or \
5568                                             (type(OPTION)==type(()) and  'SIGM_ELNO' in OPTION ) or \
5569                                             (type(OPTION)==type(()) and  'SIEF_ELGA' in OPTION ) or \
5570                                             (type(OPTION)==type(()) and  'SIPO_ELNO' in OPTION ) or \
5571                                             (type(OPTION)==type(()) and  'EFGE_ELNO' in OPTION ) ",
5572                                             fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre",
5573                     EXCIT           =FACT(statut='f',max='**',
5574                                           regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5575                          CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca) ),
5576                          FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5577                          FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5578                          COEF_MULT       =SIMP(statut='f',typ='R'),
5579                          COEF_MULT_C     =SIMP(statut='f',typ='C'),
5580                          PHAS_DEG        =SIMP(statut='f',typ='R'),
5581                          PUIS_PULS       =SIMP(statut='f',typ='I'),
5582                          TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5583                              ),
5584
5585
5586                             ),
5587 #          fin bloc contraintes struct
5588
5589           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
5590                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5591                            into=("EPSI_ELNO","EPSI_ELGA","EPME_ELNO","EPME_ELGA",
5592                                  "DEGE_ELNO","EPTU_ELNO","EPVC_ELNO","EPVC_ELGA",),
5593                                  ),
5594 b_charge =BLOC( condition = "OPTION in ('EPME_ELNO','EPSI_ELGA','EPME_ELGA','EPSI_ELNO','EPTU_ELNO' ) or \
5595                                       (type(OPTION)==type(()) and  'EPSI_ELNO' in OPTION ) or \
5596                                       (type(OPTION)==type(()) and  'EPTU_ELNO' in OPTION ) or \
5597                                       (type(OPTION)==type(()) and  'EPSI_ELGA' in OPTION ) or \
5598                                       (type(OPTION)==type(()) and  'EPME_ELNO' in OPTION ) or \
5599                                       (type(OPTION)==type(()) and  'EPME_ELGA' in OPTION ) ",
5600                                       fr="charge contenant les temperatures",
5601                     EXCIT           =FACT(statut='f',max='**',
5602                          CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou,char_cine_meca,) ),),
5603                                  ),
5604                                        ),
5605           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
5606                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5607                            into=("EPOT_ELEM","ECIN_ELEM","ENEL_ELGA","ENEL_ELNO",
5608                                  "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","DISS_ELGA","DISS_ELNO",),
5609                                  ),
5610                b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM','ECIN_ELEM','ENEL_ELGA','ENEL_ELNO',) or \
5611                                       (type(OPTION)==type(()) and  'EPOT_ELEM' in OPTION ) or \
5612                                       (type(OPTION)==type(()) and  'ENEL_ELGA' in OPTION ) or \
5613                                       (type(OPTION)==type(()) and  'ENEL_ELNO' in OPTION ) or \
5614                                       (type(OPTION)==type(()) and  'ECIN_ELEM' in OPTION ) ",
5615                                       fr="charge contenant les temperatures",
5616                     EXCIT           =FACT(statut='f',max='**',
5617                          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),),
5618                               ),
5619                                  ),
5620
5621           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
5622                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5623                            into=("SIEQ_ELNO","SIEQ_ELGA",
5624                                  "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA",
5625                                  "ENDO_ELGA","ENDO_ELNO",
5626                                  "CRIT_ELNO","SITQ_ELNO","EPTQ_ELNO",
5627                                  ) ),
5628                 EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5629                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5630                                  ),
5631
5632
5633           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
5634                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5635                            into=("SPMX_ELGA","PRME_ELNO",
5636                                  ) ),
5637                b_maxi    =BLOC( condition = "OPTION=='SPMX_ELGA' or \
5638                                 (type(OPTION)==type(()) and 'SPMX_ELGA' in OPTION)",
5639                     NOM_CHAM  =SIMP(statut='o',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"),
5640                                     fr="Nom du champ pour SPMX_ELGA",),
5641                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"),),
5642                                  ),
5643
5644           b_indi_erreur        =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
5645                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM",
5646                            into=("SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA","ERZ2_ELEM",
5647                                  "ERME_ELEM","ERME_ELNO",
5648                                  "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM",
5649                                  "SING_ELEM","SING_ELNO",
5650                                  )),
5651
5652                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \
5653                                         (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \
5654                                         (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \
5655                                         (type(OPTION)==type(()) and 'QIZ2_ELEM' in OPTION)",
5656                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5657
5658                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5659                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5660                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
5661                                   fr="precision demandee pour calculer la carte de taille des elements" ),
5662                     TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM",
5663                                                               "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",),
5664                                    fr="choix de l'estimateur d'erreur"),),
5665
5666                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5667                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5668                                  ),
5669                                  ),
5670 #    fin bloc lineaire
5671
5672 #    statique ou dynamique non lineaire : evol_noli
5673      b_noli          =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options mecaniques non lineaires",
5674           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires",
5675                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","FLUX",
5676                                  "VARI","INDI_ERREUR","TOUTES","AUTRES"),
5677                           ),
5678           b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol noli",
5679                OPTION      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5680                            into=( "SIEF_ELNO","SIRO_ELEM",
5681                                   "SITU_ELNO","SICO_ELNO",
5682                                   "EFCA_ELNO","SIPO_ELNO","SIPM_ELNO",
5683                                   "FLHN_ELGA",
5684                                   # EPSI
5685                                   "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA",
5686                                  "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA",
5687                                  "DEGE_ELNO","EPTU_ELNO",
5688                                  "EPSP_ELNO","EPSP_ELGA",
5689                                  "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA",
5690                                  "EPFP_ELNO","EPFP_ELGA",
5691                                  "VARC_ELGA",
5692                                  "VARI_ELNO","VATU_ELNO","VACO_ELNO","CRIT_ELNO",
5693                                  "VAEX_ELGA","VAEX_ELNO",
5694                                  # CRIT
5695                                  "SIEQ_ELNO","SIEQ_ELGA","SITQ_ELNO","EPTQ_ELNO",
5696                                  "ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM",
5697                                  "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM",
5698                                  "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA",
5699                                  "DERA_ELNO","DERA_ELGA",
5700                                  "ENDO_ELGA","ENDO_ELNO","INDL_ELGA","SING_ELEM",
5701                                  "SING_ELNO",
5702                                  "PMPB_ELNO","PMPB_ELGA","ENEL_ELGA","ENEL_ELNO",
5703                                  "ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","SPMX_ELGA",
5704                                  "DISS_ELGA","DISS_ELNO"),
5705                                ),
5706
5707 #              Les 2 mots cles suivants ne sont utiles qu' a l'option SPMX_ELGA
5708 #              mais  on est obligé de les laisser ici a cause des blocs
5709                NOM_CHAM  =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"),
5710                                fr="Nom du champ pour SPMX_ELGA",),
5711                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"),
5712
5713                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \
5714                                         (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \
5715                                         (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \
5716                                         (type(OPTION)==type(()) and 'QIZ2_ELEM' in OPTION)",
5717                     RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),),
5718
5719                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5720                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5721                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
5722                                   fr="precision demandee pour calculer la carte de taille des elements" ),
5723                     TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM",
5724                                                               "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",),
5725                                    fr="choix de l'estimateur d'erreur"),),
5726
5727
5728                b_extr = BLOC( condition = "OPTION in ('VAEX_ELNO','VAEX_ELGA')",
5729                              NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
5730                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
5731                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
5732                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE",
5733                                "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),),
5734                             ),
5735                EXCIT           =FACT(statut='f',max='**',
5736                                       regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5737                     CHARGE          =SIMP(statut='o',typ=char_meca ),
5738                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5739                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5740                     COEF_MULT       =SIMP(statut='f',typ='R'),
5741                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5742                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5743                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5744                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5745                          ),
5746
5747           b_flux =BLOC( condition = "TYPE_OPTION == 'FLUX'",
5748                                       fr="option de calcul de flux hydraulique 2D et 3D",
5749                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5750                               #  flux hydraulique
5751                            into=( "FLHN_ELGA",),),
5752                             ),
5753
5754           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5755                                       fr="options de contraintes non lin 2D et 3D",
5756                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5757                               #  contraintes
5758                            into=( "SIEF_ELNO",),),
5759                             ),
5760
5761           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5762                                        fr="options de contraintes non lin poutres, coques",
5763                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5764                               #  contraintes
5765                            into=( "SIEF_ELNO","EFCA_ELNO","SITU_ELNO","SICO_ELNO",
5766                            ),),
5767                              ),
5768
5769           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
5770                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5771                            into=( "EPSI_ELNO","EPSI_ELGA","EPSG_ELNO","EPSG_ELGA",
5772                                  "EPME_ELNO","EPME_ELGA","EPMG_ELNO","EPMG_ELGA",
5773                                  "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO","EPVC_ELNO","EPVC_ELGA",
5774                                  "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA"),
5775                                  ),
5776                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5777                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5778                                  ),
5779          b_epstuyo       =BLOC( condition = "OPTION == 'EPTU_ELNO' or \
5780                                   (type(OPTION)==type(()) and  'EPTU_ELNO' in OPTION) ",
5781               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5782                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5783                                ),
5784
5785           b_vari         =BLOC( condition = "TYPE_OPTION=='VARI'",
5786                                        fr="Calcul et extraction des variables internes",
5787                    OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5788                                    into=("VARI_ELNO","VATU_ELNO","VACO_ELNO",
5789                                          "VAEX_ELGA","VAEX_ELNO"),
5790                                  ),
5791           b_extr         =BLOC( condition = "OPTION in ('VAEX_ELNO','VAEX_ELGA')",
5792                    NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
5793                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
5794                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
5795                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE",
5796                                "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),),
5797                             ),
5798                            ),
5799
5800           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
5801                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5802                            into=("ETOT_ELGA","ETOT_ELNO","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO",
5803                                  "DISS_ELGA","DISS_ELNO",),
5804                                  ),
5805                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5806                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5807                                  ),
5808
5809           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
5810                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5811                            into=("SIEQ_ELNO","SIEQ_ELGA",
5812                                  "EPEQ_ELNO","EPEQ_ELGA","EPMQ_ELNO","EPMQ_ELGA",
5813                                  "CRIT_ELNO",
5814                                  "ENDO_ELGA","ENDO_ELNO",
5815                                  "PMPB_ELNO","PMPB_ELGA","SITQ_ELNO","EPTQ_ELNO",
5816                                  ) ),
5817                                  ),
5818
5819           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
5820                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5821                            into=("SPMX_ELGA",) ),
5822                b_maxi    =BLOC( condition = "OPTION=='SPMX_ELGA' or \
5823                                 (type(OPTION)==type(()) and 'SPMX_ELGA' in OPTION)",
5824                     NOM_CHAM  =SIMP(statut='o',typ='TXM',into=("SIEF_ELGA","EPSI_ELGA","SIEQ_ELGA","EPEQ_ELGA","VARI_ELGA"),
5825                                     fr="Nom du champ pour SPMX_ELGA",),
5826                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour SPMX_ELGA"),),
5827                                  ),
5828
5829           b_indi_erreur         =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
5830                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERME_ELEM",
5831                            into=("ERME_ELEM","ERME_ELNO","ERZ1_ELEM","ERZ2_ELEM",
5832                                  "DERA_ELNO","DERA_ELGA",
5833                                  "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM",
5834                                  "SING_ELEM","SING_ELNO",) ),
5835
5836                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM') or \
5837                                         (type(OPTION)==type(()) and 'QIRE_ELEM' in OPTION) or \
5838                                         (type(OPTION)==type(()) and 'QIZ1_ELEM' in OPTION) or \
5839                                         (type(OPTION)==type(()) and 'QIZ2_ELEM' in OPTION)",
5840                 RESU_DUAL    =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
5841
5842                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5843                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5844                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
5845                                   fr="precision demandee pour calculer la carte de taille des elements" ),
5846                     TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM",
5847                                                               "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",),
5848                                    fr="choix de l'estimateur d'erreur"),),
5849                                  ),
5850                                  ),
5851 #          fin bloc evol_noli
5852
5853 #           thermique : evol_ther, fourier_ther
5854      b_ther          =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques",
5855           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5856                            into=("FLUX_ELGA","FLUX_ELNO",
5857                                   "DURT_ELNO","SOUR_ELGA","ERTH_ELEM","ERTH_ELNO",),),
5858                EXCIT           =FACT(statut='f',max='**',
5859                     regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5860                     CHARGE          =SIMP(statut='o',typ=char_ther ),
5861                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5862                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5863                     COEF_MULT       =SIMP(statut='f',typ='R'),
5864                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5865                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5866                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5867                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
5868                                      ),
5869                                  ),
5870
5871 #    acoustique
5872      b_acou          =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
5873           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5874                            into=("PRAC_ELNO", "INTE_ELNO",
5875                                  ),),
5876           EXCIT           =FACT(statut='f',max='**',
5877                 regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5878                 CHARGE          =SIMP(statut='o',typ=char_acou ),
5879                 FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5880                 FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5881                 COEF_MULT       =SIMP(statut='f',typ='R'),
5882                 COEF_MULT_C     =SIMP(statut='f',typ='C'),
5883                 PHAS_DEG        =SIMP(statut='f',typ='R'),
5884                 PUIS_PULS       =SIMP(statut='f',typ='I'),
5885                 TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5886                                  ),
5887
5888
5889 #    Choix du solveur (utilisé actuellement pour estimateur d'erreur ZZ1) :
5890      SOLVEUR         =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
5891      METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MUMPS","MULT_FRONT",) ),
5892
5893
5894        b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
5895          RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
5896        ),
5897
5898        b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
5899          RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
5900        ),
5901        b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
5902                               fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
5903          NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
5904          STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5905        ),
5906
5907        b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
5908          TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
5909          PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
5910          POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
5911          RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
5912          ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
5913          PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
5914          RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
5915          OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
5916          LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
5917          ),
5918      ),
5919
5920
5921
5922      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
5923      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5924 ) ;
5925 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
5926 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5927 # ======================================================================
5928 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
5929 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5930 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5931 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5932 # (AT YOUR OPTION) ANY LATER VERSION.
5933 #
5934 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5935 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5936 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5937 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5938 #
5939 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5940 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5941 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5942 # ======================================================================
5943
5944 # RESPONSABLE NISTOR I.NISTOR
5945
5946 from Macro.calc_essai_ops import calc_essai_ops
5947
5948 def calc_essai_prod(self,RESU_IDENTIFICATION,
5949                     RESU_MODIFSTRU,
5950                     **args):
5951
5952     if RESU_IDENTIFICATION != None:
5953         for res in RESU_IDENTIFICATION:
5954             self.type_sdprod(res['TABLE'],table_fonction)
5955
5956     MTYPES = {
5957         'MODELE'    : modele_sdaster,
5958         'MODE_MECA' : mode_meca,
5959         'NUME_DDL'  : nume_ddl_sdaster,
5960         'MAILLAGE'  : maillage_sdaster,
5961         'MASS_MECA' : matr_asse_depl_r,
5962         'RIGI_MECA' : matr_asse_depl_r,
5963         'AMOR_MECA' : matr_asse_depl_r,
5964         'MACR_ELEM' : macr_elem_stat,
5965         'PROJ_MESU' : mode_gene,
5966         'BASE_ES'   : mode_meca,
5967         'BASE_LMME' : mode_meca,
5968         'MODE_STA'  : mode_meca,
5969               }
5970     if RESU_MODIFSTRU != None:
5971         for res in RESU_MODIFSTRU:
5972             for mc, typ in MTYPES.items():
5973                 if res[mc]:
5974                     self.type_sdprod(res[mc], typ)
5975     return None
5976
5977
5978 CALC_ESSAI = MACRO(nom       = 'CALC_ESSAI',
5979                    op        = calc_essai_ops,
5980                    sd_prod   = calc_essai_prod,
5981                    reentrant = 'n',
5982                    UIinfo    = {"groupes":("Outils-métier","Dynamique",)},
5983                    fr        = "Outil de post-traitement interactif pour Meidee ",
5984                    INTERACTIF  = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
5985                    RESU_IDENTIFICATION = FACT( statut='f',max='**',
5986                                                TABLE = SIMP(statut='f', typ=CO),
5987                                              ),
5988                    RESU_MODIFSTRU = FACT( statut='f', max=1,
5989                                           MODELE=SIMP(statut='f',typ=CO,defaut=None),
5990                                           MODE_MECA=SIMP(statut='f',typ=CO,defaut=None),
5991                                           MAILLAGE=SIMP(statut='f',typ=CO,defaut=None),
5992                                           NUME_DDL=SIMP(statut='f',typ=CO,defaut=None),
5993                                           MASS_MECA=SIMP(statut='f',typ=CO,defaut=None),
5994                                           RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None),
5995                                           AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None),
5996                                           MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None),
5997                                           PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None),
5998                                           BASE_ES=SIMP(statut='f',typ=CO,defaut=None),
5999                                           BASE_LMME=SIMP(statut='f',typ=CO,defaut=None),
6000                                           MODE_STA=SIMP(statut='f',typ=CO,defaut=None),
6001                                          ),
6002
6003                    b_inter    = BLOC( condition="INTERACTIF=='NON'",
6004
6005                              EXPANSION        = FACT( statut='f',max='**',
6006                                                       CALCUL           = SIMP(statut='o',typ=mode_meca),
6007                                                       NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(),
6008                                                                               max='**',defaut=0),
6009                                                       MESURE           = SIMP(statut='o',typ=mode_meca),
6010                                                       NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(),
6011                                                                               max='**',defaut=0),
6012                                                       RESOLUTION       = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')),
6013                                                       b_reso           = BLOC(condition = "RESOLUTION=='SVD'",
6014                                                                               EPS = SIMP(statut='f',typ='R', defaut = 0.)
6015                                                                        )
6016                                                     ),
6017                              IDENTIFICATION   = FACT( statut='f',max='**',
6018                                                       ALPHA   = SIMP(statut='f',typ='R', defaut = 0.),
6019                                                       EPS     = SIMP(statut='f',typ='R', defaut = 0.),
6020                                                       OBSERVABILITE  = SIMP(statut='o',typ=mode_meca),
6021                                                       COMMANDABILITE = SIMP(statut='o',typ=mode_meca),
6022                                                       INTE_SPEC      = SIMP(statut='o',typ=table_sdaster),
6023                                                       RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
6024                                                       BASE           = SIMP(statut='o',typ=mode_meca),
6025                                                      ),
6026                              MODIFSTRUCT = FACT( statut='f', max=1,
6027                                                  MESURE = SIMP(statut='o', typ=mode_meca),
6028                                                  MODELE_SUP = SIMP(statut='o', typ=modele_sdaster),
6029                                                  MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r),
6030                                                  RESOLUTION = SIMP(statut='f', typ='TXM',
6031                                                                into=('ES', 'LMME'), defaut='ES'),
6032                                                  b_resol = BLOC( condition = "RESOLUTION=='LMME'",
6033                                                                  MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r),
6034                                                                 ),
6035                                                  NUME_MODE_MESU   = SIMP(statut='o', typ='I',max='**'),
6036                                                  NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'),
6037                                                  MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster),
6038                                                ),
6039                              # Si on realise une modification structurale, on donne les DDL capteurs et interface
6040                              b_modif   = BLOC( condition="MODIFSTRUCT!=None",
6041                                    GROUP_NO_CAPTEURS  = FACT( statut='f', max='**',
6042                                                               GROUP_NO = SIMP(statut='o',typ=grno, max='**'),
6043                                                               NOM_CMP  = SIMP(statut='o',typ='TXM', max='**'),
6044                                                             ),
6045                                    GROUP_NO_EXTERIEUR = FACT( statut='f', max='**',
6046                                                               GROUP_NO = SIMP(statut='o',typ=grno, max='**'),
6047                                                               NOM_CMP  = SIMP(statut='o',typ='TXM', max='**'),
6048                                                             ),
6049                                                ),
6050                                           ),
6051                         );
6052
6053 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
6054 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6055 # ======================================================================
6056 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
6057 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6058 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6059 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6060 # (AT YOUR OPTION) ANY LATER VERSION.
6061 #
6062 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6063 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6064 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6065 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6066 #
6067 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6068 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6069 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6070 # ======================================================================
6071 # RESPONSABLE ASSIRE A.ASSIRE
6072 from Macro.calc_europlexus_ops import calc_europlexus_ops
6073
6074 def calc_europlexus_prod(self,COURBE=None,**args):
6075   if COURBE is not None:
6076       self.type_sdprod(args['TABLE_COURBE'],table_sdaster)
6077   return evol_noli
6078
6079 CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS",op=calc_europlexus_ops,sd_prod=calc_europlexus_prod,
6080         reentrant='n',
6081         UIinfo={"groupes":("Outils-métier","Dynamique",)},
6082         fr="Chainage Code_Aster-Europlexus",
6083
6084         LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/bin/europlexus'),
6085
6086         MODELE     = SIMP(statut='o',typ=modele_sdaster),
6087         CARA_ELEM  = SIMP(statut='o',typ=cara_elem),
6088
6089         FONC_PARASOL = FACT(statut='f',
6090            NFKT       = SIMP(statut='f',typ=(fonction_sdaster,)),
6091            NFKR       = SIMP(statut='f',typ=(fonction_sdaster,)),
6092            GROUP_MA   = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6093            ),
6094
6095
6096         CHAM_MATER = SIMP(statut='o',typ=cham_mater),
6097
6098         EXCIT      = FACT(statut='o',max='**',
6099            CHARGE         = SIMP(statut='o',typ=(char_meca,)),
6100            FONC_MULT      = SIMP(statut='o',typ=(fonction_sdaster,)),
6101           ),
6102
6103         DIME = FACT(statut='o', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE',
6104                                                     'PT6L','ZONE','POUT','ECRO',
6105                                                     'APPU','BLOQ','PRESS','PMAT',
6106                                                     'DKT3','DEPL','FNOM','TABLE','FTAB',
6107                                                     'MTTI','NEPE','LIAI',), ),
6108            UNITE_DIME=SIMP(statut='f',typ='I'),
6109
6110            Q4GS  = SIMP(statut='f',typ='I'),
6111            FORCE = SIMP(statut='f',typ='I'),
6112            PT6L  = SIMP(statut='f',typ='I'),
6113            ZONE  = SIMP(statut='f',typ='I'),
6114            POUT  = SIMP(statut='f',typ='I'),
6115            ECRO  = SIMP(statut='f',typ='I'),
6116            APPU  = SIMP(statut='f',typ='I'),
6117            BLOQ  = SIMP(statut='f',typ='I'),
6118            PRESS = SIMP(statut='f',typ='I',min=2,max=2,),
6119            PMAT  = SIMP(statut='f',typ='I'),
6120            DKT3  = SIMP(statut='f',typ='I'),
6121            DEPL  = SIMP(statut='f',typ='I'),
6122            FNOM  = SIMP(statut='f',typ='I'),
6123            TABLE = SIMP(statut='f',typ='I',min=2,max=2,),
6124            FTAB  = SIMP(statut='f',typ='I'),
6125            MTTI  = SIMP(statut='f',typ='I'),
6126            NEPE  = SIMP(statut='f',typ='I'),
6127            LIAI  = SIMP(statut='f',typ='I'),
6128              ),
6129
6130         CALCUL = FACT(statut='o',
6131            TYPE_DISCRETISATION  = SIMP(statut='o',typ='TXM',defaut='AUTO',into=('AUTO','UTIL')),
6132            INST_FIN             = SIMP(statut='o',typ='R'),
6133            INST_INIT            = SIMP(statut='o',typ='R'),
6134            NMAX                 = SIMP(statut='f',typ='R'),
6135
6136            b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'",
6137               CSTAB  = SIMP(statut='o',typ='R',max='**',defaut=0.3),
6138 #              DTMAX  = SIMP(statut='f',typ='R',max='**'),
6139                        ),
6140
6141            b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'",
6142               PASFIX   = SIMP(statut='o',typ='R',max='**'),
6143                        ),
6144            ),
6145
6146
6147         OBSERVATION     =FACT(statut='f',max='**',
6148            SUIVI_DDL       = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")),
6149         b_suivi          =BLOC(condition = "SUIVI_DDL == 'OUI' ",
6150                                regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',),
6151                                         EXCLUS('PAS_NBRE','PAS_INST',),
6152                                         EXCLUS('GROUP_NO','TOUT_GROUP_NO',),
6153                                         EXCLUS('GROUP_MA','TOUT_GROUP_MA',), ),
6154            NOM_CHAM        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut=('DEPL',),into=('DEPL'
6155                                          ,'VITE','ACCE','SIEF_ELGA','EPSI_ELGA','VARI_ELGA'),),
6156            PAS_INST        = SIMP(statut='f',typ='R'),
6157            PAS_NBRE        = SIMP(statut='f',typ='I'),
6158            GROUP_NO        = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6159            GROUP_MA        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6160            TOUT_GROUP_NO   = SIMP(statut='f',typ='TXM',into=('OUI',),),
6161            TOUT_GROUP_MA   = SIMP(statut='f',typ='TXM',into=('OUI',),),
6162                              ),
6163         ),
6164
6165
6166         ARCHIVAGE        =FACT(statut='o', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ),
6167            PAS_INST     = SIMP(statut='f',typ='R'),
6168            PAS_NBRE     = SIMP(statut='f',typ='I'),
6169            CONT_GENER   = SIMP(statut='o',typ='TXM',defaut="NON",max=1,into=("OUI","NON")),
6170                              ),
6171         COURBE  =  FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')),
6172            UNITE_ALIT = SIMP(statut='f',typ='I'),
6173             NOM_CHAM   = SIMP(statut='f',typ='TXM'),
6174             NOM_CMP    = SIMP(statut='f',typ='TXM'),
6175 #             NOEUD      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6176 #             MAILLE     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6177             GROUP_NO   = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
6178             GROUP_MA   = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
6179
6180             b_maille = BLOC(condition = "GROUP_MA != None", regles=(AU_MOINS_UN('NUM_GAUSS')),
6181               NUM_GAUSS = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),),
6182          ),
6183         b_courbe = BLOC(condition = "COURBE != None",
6184                         regles=(AU_MOINS_UN('PAS_NBRE_COURBE','PAS_INST_COURBE',),
6185                                 AU_MOINS_UN('TABLE_COURBE',)),
6186           PAS_INST_COURBE      = SIMP(statut='f',typ='R'),
6187           PAS_NBRE_COURBE       = SIMP(statut='f',typ='I'),
6188                   TABLE_COURBE      = SIMP(statut='f', typ=CO),
6189           ),
6190         DOMAINES = FACT(statut='f',max='**',
6191              GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6192              IDENTIFIANT =  SIMP(statut='f',typ='I'),),
6193         INTERFACES = FACT(statut='f',max='**',
6194              GROUP_MA_1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6195              GROUP_MA_2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6196              TOLE        =  SIMP(statut='f',typ='R'),
6197              IDENT_DOMAINE_1  = SIMP(statut='f',typ='I'),
6198              IDENT_DOMAINE_2  = SIMP(statut='f',typ='I'),),
6199
6200          INFO            =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
6201         ) ;
6202 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
6203 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6204 # ======================================================================
6205 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6206 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6207 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6208 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6209 # (AT YOUR OPTION) ANY LATER VERSION.
6210 #
6211 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6212 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6213 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6214 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6215 #
6216 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6217 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6218 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6219 # ======================================================================
6220 # RESPONSABLE ANGLES J.ANGLES
6221 def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
6222   if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem
6223   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem
6224   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster
6225   if TYPE_CALCUL == "FATIGUE_VIBR" : return cham_elem
6226   raise AsException("type de calcul non prevu")
6227
6228 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
6229                   fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique"
6230                       +" dans lequel le cisaillement est maximal.",
6231             UIinfo={"groupes":("Post-traitements","Rupture",)},
6232
6233          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
6234                                into=("CUMUL_DOMMAGE","FATIGUE_MULTI","FATIGUE_VIBR") ),
6235
6236          b_cumul_domma   =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
6237                                fr="Calcul d un champ de dommage subi par une structure.",
6238            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
6239            OPTION          =SIMP(statut='o',typ='TXM',
6240                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
6241                                        "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
6242                                        "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
6243
6244              b_sigm   =BLOC(condition = "OPTION == 'DOMA_ELNO_SIGM' or OPTION == 'DOMA_ELGA_SIGM'",
6245                                fr="Calcul a partir d un champ de contraintes.",
6246                HISTOIRE        =FACT(statut='o',
6247                RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
6248                                                    evol_noli) ),
6249                EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
6250                                  into=("VMIS_SG",) ),
6251                                    ),
6252                            ),
6253              b_epsi   =BLOC(condition = "OPTION != 'DOMA_ELNO_SIGM' and OPTION != 'DOMA_ELGA_SIGM'",
6254                                fr="Calcul a partir d un champ de déformations.",
6255                HISTOIRE        =FACT(statut='o',
6256                RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
6257                                                    evol_noli) ),
6258                EQUI_GD         =SIMP(statut='o',typ='TXM',defaut="INVA_2_SG",
6259                                  into=("INVA_2_SG",) ),
6260                                     ),
6261                            ),
6262            DOMMAGE         =SIMP(statut='o',typ='TXM',
6263                                into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
6264                                      "TAHERI_MIXTE",) ),
6265            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
6266            TAHERI_NAPPE    =SIMP(statut='f',typ=(nappe_sdaster,formule) ),
6267            TAHERI_FONC     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6268          ),
6269
6270          b_domma_moda   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_VIBR'",
6271                                fr="Calcul d un champ de dommage en dynamique vibratoire",
6272            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
6273            OPTION          =SIMP(statut='o',typ='TXM',
6274                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",) ),
6275            CORR_SIGM_MOYE = SIMP(statut='o',typ='TXM',into=("GOODMAN","GERBER")),
6276            HISTOIRE        =FACT(statut='o',
6277              RESULTAT  =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
6278              MODE_MECA        =SIMP(statut='o',typ=(mode_meca) ),
6279              NUME_MODE        =SIMP(statut='o',typ='I',min=1 ,max='**'),
6280              FACT_PARTICI        =SIMP(statut='o',typ='R',min=1, max='**',defaut=1. ),
6281              EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
6282                                  into=("VMIS_SG",) ),
6283            ),
6284            DOMMAGE         =SIMP(statut='o',typ='TXM',
6285                                into=("WOHLER",) ),
6286            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
6287          ),
6288
6289          b_fatigue_multi   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
6290                                  fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
6291            TYPE_CHARGE   =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ),
6292            OPTION        =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
6293            RESULTAT      =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
6294            CHAM_MATER    =SIMP(statut='o',typ=(cham_mater) ),
6295            MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster ),
6296            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
6297            GROUP_MA      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
6298            MAILLE        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**' ),
6299            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ),
6300            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**' ),
6301            COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
6302            b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
6303                CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","VMIS_TRESCA") ),
6304                b_fati_p  =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')",
6305                    METHODE       =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
6306                ),
6307            ),
6308            b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
6309                CRITERE       =SIMP(statut='o',typ='TXM',
6310                                    into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","VMIS_TRESCA") ),
6311                b_fati_np  =BLOC(condition =
6312                                "(CRITERE == 'MATAKE_MODI_AV' or CRITERE == 'DANG_VAN_MODI_AV' or CRITERE == 'FATESOCI_MODI_AV')",
6313                    PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
6314                    DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),
6315                ),
6316            ),
6317          ),
6318
6319          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
6320 )  ;
6321 #& MODIF COMMANDE  DATE 02/02/2011   AUTEUR PELLET J.PELLET 
6322 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6323 # ======================================================================
6324 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
6325 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6326 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6327 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6328 # (AT YOUR OPTION) ANY LATER VERSION.
6329 #
6330 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6331 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6332 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6333 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6334 #
6335 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6336 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6337 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6338 # ======================================================================
6339 # RESPONSABLE PELLET
6340
6341 def calc_ferrailage_prod(RESULTAT,**args):
6342    if AsType(RESULTAT) != None : return AsType(RESULTAT)
6343    raise AsException("type de concept resultat non prevu")
6344
6345
6346 CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferrailage_prod, reentrant='o',
6347             UIinfo={"groupes":("Post-traitements","Outils-métier",)},
6348                  fr="calcul de cartes de densité de ferraillage ",
6349
6350          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,) ),
6351
6352
6353 #====
6354 # Sélection des numéros d'ordre pour lesquels on fait le calcul :
6355 #====
6356          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6357          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
6358          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6359          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
6360          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6361          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
6362          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6363
6364          b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
6365             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
6366             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
6367                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
6368             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
6369                  PRECISION       =SIMP(statut='o',typ='R',),),
6370          ),
6371
6372
6373 #
6374 #====
6375 # Définition des grandeurs caractéristiques
6376 #====
6377 #
6378          TYPE_COMB    =SIMP(statut='o',typ='TXM',into=('ELU','ELS')),
6379
6380 #        mot clé facteur répétable pour assigner les caractéristiques locales par zones topologiques (GROUP_MA)
6381          AFFE  =FACT(statut='o',max='**',
6382            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
6383            TOUT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6384            GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6385            MAILLE     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6386            ENROBG     =SIMP(statut='o',typ='R'), # enrobage
6387            CEQUI      =SIMP(statut='f',typ='R'), # coefficient d'équivalence acier/béton  (pour ELS)
6388            SIGM_ACIER =SIMP(statut='o',typ='R'), # contrainte admissible dans l'acier
6389            SIGM_BETON =SIMP(statut='o',typ='R'), # contrainte admissible dans le béton
6390            PIVA       =SIMP(statut='f',typ='R'), # valeur du pivot a  (pour ELU)
6391            PIVB       =SIMP(statut='f',typ='R'), # valeur du pivot b  (pour ELU)
6392            ),
6393       )
6394
6395
6396 ##############################################################################################################
6397 # Remarques :
6398 #-----------
6399 #        l'épaisseur des coques sera récupérée automatiquement
6400 #        via le cara_elem sous-jacent au résultat
6401
6402 # Le résultat produit est un champ constant par éléments associé à la grandeur FER2_R
6403 # qui comporte les composantes :
6404 #
6405 #     DNSXI  densité d'acier longitudinal suivant X, peau inf
6406 #     DNSXS  densité d'acier longitudinal suivant X, peau sup
6407 #     DNSYI  densité d'acier longitudinal suivant Y, peau inf
6408 #     DNSYS  densité d'acier longitudinal suivant Y, peau sup
6409 #     DNST   densité d'acier transversal
6410 #     SIGMBE contrainte beton
6411 #     EPSIBE deformation béton
6412
6413 # arrêt en erreur si:
6414 # - EFGE_ELNO n'a pas été précédemment calculé et n'est donc pas présent dans la structure de données RESULTAT
6415 # - si aucun CARA_ELEM n'est récupérable via la structure de données RESULTAT
6416 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
6417 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6418 # ======================================================================
6419 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6420 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6421 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6422 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6423 # (AT YOUR OPTION) ANY LATER VERSION.
6424 #
6425 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6426 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6427 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6428 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6429 #
6430 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6431 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6432 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6433 # ======================================================================
6434 # RESPONSABLE ADOBES A.ADOBES
6435 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
6436                     reentrant='n',
6437                     fr="Calculer les paramètres modaux d'une structure soumise à un écoulement",
6438             UIinfo={"groupes":("Matrices et vecteurs",)},
6439          VITE_FLUI       =FACT(statut='f',
6440                                fr="Définir la plage de vitesse fluide étudiée",
6441            VITE_MIN        =SIMP(statut='f',typ='R' ),
6442            VITE_MAX        =SIMP(statut='f',typ='R' ),
6443            NB_POIN         =SIMP(statut='f',typ='I' ),
6444          ),
6445          BASE_MODALE     =FACT(statut='o',
6446
6447            regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),),
6448            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
6449            NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
6450            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
6451            AMOR_UNIF       =SIMP(statut='f',typ='R',val_min=0.E+00 ),
6452            AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
6453          ),
6454          TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
6455          IMPRESSION      =FACT(statut='f',
6456                                fr="Choix des informations à imprimer dans le fichier RESULTAT",
6457            PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6458            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6459          ),
6460 )  ;
6461 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
6462 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6463 # ======================================================================
6464 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6465 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6466 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6467 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6468 # (AT YOUR OPTION) ANY LATER VERSION.
6469 #
6470 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6471 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6472 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6473 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6474 #
6475 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6476 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6477 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6478 # ======================================================================
6479 # RESPONSABLE COURTOIS M.COURTOIS
6480 def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args):
6481    if   AsType(FONCTION) == nappe_sdaster:
6482       return nappe_sdaster
6483    elif AsType(FONCTION) == fonction_sdaster:
6484       return fonction_sdaster
6485    elif AsType(FONCTION) == fonction_c:
6486       return fonction_c
6487    elif AsType(FONCTION) == formule_c:
6488       return fonction_c
6489    elif AsType(FONCTION) == formule:
6490       if NOM_PARA_FONC != None:
6491          return nappe_sdaster
6492       return fonction_sdaster
6493    elif AsType(FONCTION) == para_sensi:
6494       return para_sensi
6495    raise AsException("type de concept resultat non prevu")
6496
6497 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod,
6498                       docu="U4.32.01",reentrant='n',
6499            fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables",
6500            UIinfo={"groupes":("Fonctions",)},
6501          regles=(UN_PARMI('VALE_PARA','LIST_PARA'),),
6502          FONCTION        =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ),
6503          VALE_PARA       =SIMP(statut='f',typ='R',max='**'),
6504          LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
6505          NOM_RESU        =SIMP(statut='f',typ='TXM'),
6506          NOM_PARA        =SIMP(statut='f',typ='TXM'),
6507          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
6508          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6509          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6510          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM'),
6511          b_eval_nappe    =BLOC(condition = "NOM_PARA_FONC != None",
6512             regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),),
6513             VALE_PARA_FONC  =SIMP(statut='f',typ='R',max='**'),
6514             LIST_PARA_FONC  =SIMP(statut='f',typ=listr8_sdaster ),
6515             INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")),
6516             PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6517             PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6518          ),
6519          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6520          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6521 )  ;
6522 #& MODIF COMMANDE  DATE 22/03/2011   AUTEUR COURTOIS M.COURTOIS 
6523 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6524 # ======================================================================
6525 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
6526 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6527 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6528 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6529 # (AT YOUR OPTION) ANY LATER VERSION.
6530 #
6531 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6532 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6533 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6534 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6535 #
6536 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6537 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6538 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6539 # ======================================================================
6540 # RESPONSABLE COURTOIS M.COURTOIS
6541 from Macro.calc_fonction_ops import calc_fonction_ops
6542 def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C,
6543                        ENVELOPPE,FRACTILE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,
6544                        LISS_ENVELOP,ABS, REGR_POLYNOMIALE, **args):
6545
6546    if (INTEGRE     != None): return fonction_sdaster
6547    if (DERIVE      != None): return fonction_sdaster
6548    if (INVERSE     != None): return fonction_sdaster
6549    if (COMB        != None):
6550       type_vale=AsType(COMB[0]['FONCTION'])
6551       for mcfact in COMB :
6552           if(AsType(mcfact['FONCTION'])!=type_vale):
6553              raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction")
6554       return type_vale
6555    if (COMB_C      != None):
6556       vale=COMB_C[0]['FONCTION']
6557       if(AsType(vale) == nappe_sdaster):
6558          for mcfact in COMB_C[1:] :
6559              if(AsType(mcfact['FONCTION'])!=nappe_sdaster):
6560                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
6561          return nappe_sdaster
6562       else:
6563          for mcfact in COMB_C :
6564              if(AsType(mcfact['FONCTION'])==nappe_sdaster):
6565                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
6566          return fonction_c
6567    if (ENVELOPPE   != None): return AsType(ENVELOPPE[0]['FONCTION'])
6568    if (FRACTILE    != None): return AsType(FRACTILE[0] ['FONCTION'])
6569    if (EXTRACTION  != None): return fonction_sdaster
6570    if (SPEC_OSCI   != None): return nappe_sdaster
6571    if (COMPOSE     != None): return fonction_sdaster
6572    if (ASSE        != None): return fonction_sdaster
6573    if (FFT         != None):
6574       vale=FFT[0]['FONCTION']
6575       if (AsType(vale) == fonction_sdaster )  : return fonction_c
6576       if (AsType(vale) == fonction_c) : return fonction_sdaster
6577    if (CORR_ACCE   != None): return fonction_sdaster
6578    if (LISS_ENVELOP!= None): return nappe_sdaster
6579    if (REGR_POLYNOMIALE != None): return fonction_sdaster
6580    if (PUISSANCE   != None): return AsType(PUISSANCE[0]['FONCTION'])
6581    if (ABS         != None): return fonction_sdaster
6582    raise AsException("type de concept resultat non prevu")
6583
6584
6585 CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod
6586                     ,fr="Effectue des opérations mathématiques sur des concepts de type fonction",
6587                      reentrant='n',
6588             UIinfo={"groupes":("Fonctions",)},
6589          regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE',
6590                           'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
6591                           'LISS_ENVELOP','INVERSE','ABS','FRACTILE','REGR_POLYNOMIALE'),),
6592          FFT             =FACT(statut='f',fr="Transformée de Fourier ou de son inverse",
6593            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ),
6594            METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE","COMPLET") ),
6595            b_syme          =BLOC ( condition = " AsType(FONCTION)==fonction_c ",
6596              SYME           =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
6597            ),
6598          ),
6599          DERIVE          =FACT(statut='f',fr="Dérivée d une fonction",
6600            METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
6601            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6602          ),
6603          INTEGRE         =FACT(statut='f',fr="Intégrale d'une fonction",
6604            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
6605            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
6606            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
6607          ),
6608          LISS_ENVELOP    = FACT(statut='f',fr="Lissage d une enveloppe",
6609            NAPPE           =SIMP(statut='o',typ=nappe_sdaster ),
6610            FREQ_MIN        =SIMP(statut='f',typ='R',defaut =0.2),
6611            FREQ_MAX        =SIMP(statut='f',typ='R',defaut =35.5),
6612            ELARG           =SIMP(statut='f',typ='R',defaut =0.1 ),
6613            TOLE_LISS       =SIMP(statut='f',typ='R',defaut =0.25 ),
6614          ),
6615          REGR_POLYNOMIALE = FACT(statut='f',fr="Régression polynomiale d'une fonction",
6616            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
6617            DEGRE           =SIMP(statut='o',typ='I'),
6618          ),
6619          SPEC_OSCI       =FACT(statut='f',fr="Spectre d'oscillateur",
6620            METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
6621            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6622            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
6623            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
6624            FREQ            =SIMP(statut='f',typ='R',max='**'),
6625            NORME           =SIMP(statut='o',typ='R',fr="Valeur de la norme du spectre d oscillateur" ),
6626            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
6627            NATURE_FONC     =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
6628          ),
6629          ABS             =FACT(statut='f',fr="Valeur absolue d'une fonction",
6630            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,),
6631          ),
6632          COMB            =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions",
6633            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
6634            COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
6635          ),
6636          COMB_C          =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions",
6637            regles=(UN_PARMI('COEF_R','COEF_C'),),
6638            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
6639            COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
6640            COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
6641          ),
6642          b_comb          =BLOC ( condition = "COMB != None or COMB_C != None or REGR_POLYNOMIALE != None",
6643              LIST_PARA      =SIMP(statut='f',typ=listr8_sdaster ),
6644          ),
6645          COMPOSE         =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)",
6646            FONC_RESU       =SIMP(statut='o',typ=fonction_sdaster),
6647            FONC_PARA       =SIMP(statut='o',typ=fonction_sdaster),
6648          ),
6649          EXTRACTION      =FACT(statut='f',fr="Extraction sur une fonction complexe",
6650            FONCTION        =SIMP(statut='o',typ=fonction_c),
6651            PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
6652          ),
6653          ENVELOPPE       =FACT(statut='f',fr="Enveloppe d une famille de fonctions",
6654            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
6655            CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
6656          ),
6657          FRACTILE        =FACT(statut='f',fr="Fractile d une famille de fonctions ou de nappes",
6658            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
6659            FRACT           =SIMP(statut='o',typ='R',defaut=1.,val_min=0.,val_max=1.,fr="Valeur du fractile" ),
6660          ),
6661          ASSE            =FACT(statut='f',fr="Concatenation de fonctions",
6662            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ),
6663            SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
6664          ),
6665          CORR_ACCE       =FACT(statut='f',fr="Correction d un accelerogramme reel",
6666             CORR_DEPL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
6667             FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6668          ),
6669          PUISSANCE       =FACT(statut='f',fr="Fonction élevée à une puissance",
6670             FONCTION      =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ),
6671             EXPOSANT      =SIMP(statut='f', typ='I', defaut=1 ),
6672          ),
6673          INVERSE         =FACT(statut='f',fr="Inverse d'une fonction",
6674             FONCTION      =SIMP(statut='o', typ=fonction_sdaster),
6675          ),
6676          NOM_PARA        =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
6677          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
6678          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG"),
6679                                fr="Type d'interpolation pour les abscisses et les ordonnées de la " \
6680                                   "fonction ou bien pour le paramètre de la nappe."),
6681          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6682          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6683          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
6684          INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG"),
6685                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"),
6686          PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6687          PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6688          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6689 )
6690 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
6691 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6692 # ======================================================================
6693 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
6694 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6695 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6696 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6697 # (AT YOUR OPTION) ANY LATER VERSION.
6698 #
6699 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6700 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6701 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6702 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6703 #
6704 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6705 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6706 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6707 # ======================================================================
6708 # RESPONSABLE GREFFET N.GREFFET
6709 CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
6710                    fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure"
6711                        +" en analyse sismique",
6712                    reentrant ='n',
6713             UIinfo={"groupes":("Matrices et vecteurs",)},
6714
6715         regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
6716                 PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
6717                 UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
6718                 UN_PARMI('MONO_APPUI','MODE_STAT')),
6719
6720          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
6721          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
6722          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6723          CHARGE          =SIMP(statut='o',typ=char_ther ),
6724          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
6725          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
6726          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
6727          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
6728          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6729          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6730          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
6731          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6732
6733          DIRECTION       =SIMP(statut='o',typ='R',max=3),
6734          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
6735          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6736          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6737          MODE_STAT       =SIMP(statut='f',typ=mode_meca,),
6738          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6739
6740          SOLVEUR         =FACT(statut='d',
6741            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
6742            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6743              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6744            ),
6745            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6746              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6747            ),
6748            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
6749                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
6750              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6751              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6752            ),
6753            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6754              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
6755              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
6756                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
6757                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6758                ),
6759              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
6760                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
6761                ),
6762              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6763              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6764            ),
6765            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
6766              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
6767              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
6768              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
6769              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
6770              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
6771              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
6772              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.0E-6,),
6773              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
6774              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),            
6775            ),
6776            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
6777              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
6778              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
6779              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
6780                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
6781                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
6782                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6783              ),
6784              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
6785                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
6786                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
6787              ),
6788              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'",
6789                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
6790                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
6791              ),
6792              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6793              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
6794            ),
6795         ),
6796      ) ;
6797 #& MODIF COMMANDE  DATE 14/12/2010   AUTEUR PELLET J.PELLET 
6798 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6799 # ======================================================================
6800 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
6801 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6802 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6803 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6804 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6805 #                                                                       
6806 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6807 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6808 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6809 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6810 #                                                                       
6811 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6812 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6813 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6814 # ======================================================================
6815 # RESPONSABLE DEVESA
6816
6817 CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n',
6818             fr="Créer un dyna_trans contenant des champs nommés 'DEPL' correspondant à 'FONL_NOEU' ",
6819             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
6820          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
6821
6822          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
6823                         'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
6824                  ),
6825          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6826          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6827          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6828          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6829          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
6830          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6831          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6832          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6833          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6834          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6835          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
6836          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
6837              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
6838          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
6839              PRECISION       =SIMP(statut='o',typ='R',),),
6840          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, defaut="FONL_NOEU",
6841                                into=("FONL_NOEU",) ),
6842
6843          MODELE          =SIMP(statut='o',typ=modele_sdaster),
6844          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
6845          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
6846
6847          COMP_INCR       =C_COMP_INCR(),
6848 )  ;
6849 #& MODIF COMMANDE  DATE 07/12/2010   AUTEUR GENIAUT S.GENIAUT 
6850 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6851 # ======================================================================
6852 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
6853 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6854 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6855 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6856 # (AT YOUR OPTION) ANY LATER VERSION.
6857 #
6858 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6859 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6860 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6861 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6862 #
6863 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6864 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6865 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6866 # ======================================================================
6867 # RESPONSABLE GALENNE E.GALENNE
6868 CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster,
6869             fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité"
6870                         +" et les facteurs d'intensité de contraintes.",
6871                     reentrant='f',
6872             UIinfo={"groupes":("Post-traitements","Rupture",)},
6873          regles=(EXCLUS('COMP_ELAS','COMP_INCR'),
6874                  CONCEPT_SENSIBLE("ENSEMBLE"),
6875                  REUSE_SENSIBLE(),
6876                  DERIVABLE('RESULTAT'),),
6877
6878          THETA          =FACT(statut='o',
6879            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),),
6880            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,max=1),
6881            FISSURE         =SIMP(statut='f',typ=fiss_xfem,max=1),
6882            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
6883            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
6884            NB_POINT_FOND   =SIMP(statut='f',typ='I',val_min=2),
6885            regles=(EXCLUS('FOND_FISS','FISSURE'),
6886                  EXCLUS('FOND_FISS','NB_POINT_FOND'),
6887                  EXCLUS('FOND_FISS','DTAN_ORIG'),
6888                  EXCLUS('FOND_FISS','DTAN_EXTR'),),
6889           b_theta        =BLOC(condition="THETA == None",fr="calcul de theta",
6890             regles=(UN_PARMI('R_INF','R_INF_FO'),
6891                  PRESENT_PRESENT('R_INF','R_SUP'),
6892                 PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
6893              NUME_FOND        =SIMP(statut='f',typ='I',defaut=1),
6894              R_INF           =SIMP(statut='f',typ='R'),
6895              R_SUP           =SIMP(statut='f',typ='R'),
6896              MODULE          =SIMP(statut='f',typ='R',defaut=1.),
6897              DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
6898              DIRECTION       =SIMP(statut='f',typ='R',max=3,min=3),
6899              R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6900              R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6901              MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6902              ),
6903             ),
6904
6905          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca,mult_elas),),
6906
6907          b_no_mult          =BLOC(condition="(AsType(RESULTAT) != mult_elas)",
6908          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
6909                   'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),),
6910
6911             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6912             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6913             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6914             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6915             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6916             TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6917             NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6918             LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
6919             LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6920             FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6921
6922            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
6923               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6924                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
6925                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
6926                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
6927                       PRECISION       =SIMP(statut='o',typ='R'),),
6928             ),
6929          ),
6930
6931          b_mult_elas     =BLOC(condition="(AsType(RESULTAT) == mult_elas)",
6932             NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat() ),
6933          ),
6934
6935
6936          EXCIT           =FACT(statut='f',max='**',
6937                CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
6938                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6939                TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
6940          ),
6941          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
6942
6943          COMP_ELAS       =C_COMP_ELAS('CALC_G'),
6944
6945          COMP_INCR       =FACT(statut='f',
6946                RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
6947                                      into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE","VMIS_ISOT_PUIS") ),
6948                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
6949       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6950                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6951                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6952                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6953          ),
6954          ETAT_INIT       =FACT(statut='f',
6955            SIGM            =SIMP(statut='f',typ=cham_elem),
6956            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
6957          ),
6958
6959          LISSAGE         =FACT(statut='d',
6960            DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
6961            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
6962            LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE",
6963                                  "LAGRANGE_NO_NO","LAGRANGE_REGU"),),
6964          ),
6965
6966          OPTION          =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G',
6967               into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI",
6968                     "G_BILI_GLOB","CALC_K_MAX"),),
6969
6970          b_g_max    =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')",
6971            BORNES          =FACT(statut='o',max='**',
6972                 NUME_ORDRE     =SIMP(statut='o',typ='I'),
6973                 VALE_MIN       =SIMP(statut='o',typ='R'),
6974                 VALE_MAX       =SIMP(statut='o',typ='R'),
6975                                 ),
6976          ),
6977          b_k_max    =BLOC(condition="(OPTION=='CALC_K_MAX')",
6978            SIGNES          =FACT(statut='o',max=1,
6979                 CHARGE_S       =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6980                 CHARGE_NS      =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6981                                 ),
6982          ),
6983
6984          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
6985                            fr="Liste des paramètres de sensibilité.",
6986                            ang="List of sensitivity parameters"),
6987
6988          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6989          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6990 );
6991 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
6992 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6993 # ======================================================================
6994 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
6995 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6996 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6997 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6998 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6999 #                                                                       
7000 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7001 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7002 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7003 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7004 #                                                                       
7005 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7006 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7007 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7008 # ======================================================================
7009 # RESPONSABLE GREFFET N.GREFFET
7010 #
7011 # MACRO DE COUPLAGE IFS AVEC SATURNE VIA YACS
7012 #
7013 from Macro.calc_ifs_dnl_ops import calc_ifs_dnl_ops
7014 #
7015 CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL',op=calc_ifs_dnl_ops,sd_prod=evol_noli,reentrant='f',
7016             fr="Calcul de l'évolution dynamique d'une structure couplée à un domaine fluide (résolu avec le code Saturne) via YACS",
7017             UIinfo={"groupes":("Résolution","Dynamique",)},
7018          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
7019                  CONCEPT_SENSIBLE('ENSEMBLE'),),
7020 #IFS
7021 #=>
7022          GROUP_MA_IFS     =SIMP(statut='o',typ=grma,max='**'),
7023          NOM_CMP_IFS      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
7024          UNITE_NOEUD      =SIMP(statut='f',typ='I',defaut= 81 ),
7025          UNITE_ELEM       =SIMP(statut='f',typ='I',defaut= 82 ),
7026          PAS_INIT         =SIMP(statut='o',typ='R' ),
7027 #<=
7028 #IFS
7029          MODELE          =SIMP(statut='o',typ=modele_sdaster),
7030          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
7031          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
7032          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
7033          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
7034 #IFS
7035 #=>
7036 #(une charge force nodale est fournie par le couplage avec code_saturne
7037          EXCIT           =FACT(statut='f',max='**',
7038 #<=
7039 #IFS
7040            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
7041                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
7042                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
7043                    ),
7044            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
7045                                  into=("FIXE_CSTE","SUIV","DIDI")),
7046 #IFS
7047 #=>
7048 #(une charge force nodale est fournie par le couplage avec code_saturne
7049 #           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
7050            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
7051 #<=
7052 #IFS
7053            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7054            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7055            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7056            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7057            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
7058            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
7059            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7060            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7061          ),
7062          EXCIT_GENE      =FACT(statut='f',max='**',
7063            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
7064            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
7065          ),
7066          CONTACT         =SIMP(statut='f',typ=char_contact),
7067          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
7068                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
7069                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
7070                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7071                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
7072                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7073               ),
7074          AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),),
7075          AMOR_MODAL      =FACT(statut='f',
7076            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
7077            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
7078            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
7079            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
7080            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
7081            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7082          ),
7083          PROJ_MODAL      =FACT(statut='f',max='**',
7084            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
7085            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
7086            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
7087            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
7088            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
7089            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
7090            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
7091            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
7092            ACCE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
7093          ),
7094 #-------------------------------------------------------------------         
7095          COMP_INCR       =C_COMP_INCR(),
7096 #-------------------------------------------------------------------         
7097          COMP_ELAS       =C_COMP_ELAS('DYNA_NON_LINE'),
7098 #-------------------------------------------------------------------
7099          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
7100          ETAT_INIT       =FACT(statut='o',
7101            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
7102                    EXCLUS('EVOL_NOLI','DEPL',),
7103                    EXCLUS('EVOL_NOLI','VITE'),
7104                    EXCLUS('EVOL_NOLI','ACCE'),
7105                    EXCLUS('EVOL_NOLI','SIGM',),
7106                    EXCLUS('EVOL_NOLI','VARI',),
7107                    EXCLUS('NUME_ORDRE','INST'), ),
7108            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
7109            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
7110            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
7111            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
7112            VARI            =SIMP(statut='f',typ=cham_elem),
7113            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
7114            NUME_ORDRE      =SIMP(statut='f',typ='I'),
7115            INST            =SIMP(statut='f',typ='R'),
7116            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7117            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
7118                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
7119            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
7120                PRECISION       =SIMP(statut='o',typ='R',),),
7121            NUME_DIDI       =SIMP(statut='f',typ='I'),
7122            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
7123          ),),
7124          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
7125          ETAT_INIT       =FACT(statut='f',
7126            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
7127                    EXCLUS('EVOL_NOLI','DEPL',),
7128                    EXCLUS('EVOL_NOLI','VITE'),
7129                    EXCLUS('EVOL_NOLI','ACCE'),
7130                    EXCLUS('EVOL_NOLI','SIGM',),
7131                    EXCLUS('EVOL_NOLI','VARI',),
7132                    EXCLUS('NUME_ORDRE','INST'), ),
7133            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
7134            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
7135            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
7136            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
7137            VARI            =SIMP(statut='f',typ=cham_elem),
7138            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
7139            NUME_ORDRE      =SIMP(statut='f',typ='I'),
7140            INST            =SIMP(statut='f',typ='R'),
7141            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7142            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
7143                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
7144            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
7145                PRECISION       =SIMP(statut='o',typ='R',),),
7146            NUME_DIDI       =SIMP(statut='f',typ='I'),
7147            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
7148          ),),
7149 #-------------------------------------------------------------------
7150 #IFS : pas besoin d'INCREMENT
7151 #         INCREMENT       =C_INCREMENT(),
7152 #-------------------------------------------------------------------
7153          SCHEMA_TEMPS     =FACT(statut='o',
7154             SCHEMA          =SIMP(statut='o',min=1,max=1,typ='TXM',
7155             into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),),
7156             COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
7157             b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
7158                PHI          =SIMP(statut='f',typ='R',defaut= 1.05),),
7159                
7160             b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
7161                BETA         =SIMP(statut='f',typ='R',defaut= 0.25),
7162                GAMMA        =SIMP(statut='f',typ='R',defaut= 0.5),),
7163                
7164             b_hht     = BLOC(condition="SCHEMA=='HHT'",
7165                ALPHA        =SIMP(statut='f',typ='R',defaut= -0.3 ),
7166                MODI_EQUI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
7167                
7168             b_theta   = BLOC(condition="SCHEMA=='THETA_METHODE'",
7169                THETA         =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),),
7170
7171             b_krenk   = BLOC(condition="SCHEMA=='KRENK'",
7172                KAPPA         =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),), 
7173                
7174             b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
7175                STOP_CFL     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
7176                FORMULATION  =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
7177                
7178             b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
7179                FORMULATION  =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),),
7180          ),
7181 #-------------------------------------------------------------------         
7182          NEWTON          =C_NEWTON(),
7183 #-------------------------------------------------------------------
7184          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
7185 #-------------------------------------------------------------------
7186          CONVERGENCE     =C_CONVERGENCE(),
7187 #-------------------------------------------------------------------
7188          SOLVEUR         =C_SOLVEUR(),
7189 #-------------------------------------------------------------------
7190          OBSERVATION     =C_OBSERVATION(),
7191 #-------------------------------------------------------------------
7192          SUIVI_DDL       =C_SUIVI_DDL(),
7193 #------------------------------------------------------------------- 
7194          AFFICHAGE       =C_AFFICHAGE(),
7195 #-------------------------------------------------------------------
7196          ARCHIVAGE       =C_ARCHIVAGE(),
7197 #-------------------------------------------------------------------
7198          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
7199            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
7200            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.),
7201                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
7202            RIGI_GEOM     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
7203            bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')",
7204               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
7205                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
7206                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
7207                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
7208                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
7209                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
7210                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
7211                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
7212                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
7213                                           'PRES31','PRES32','PRES33','VARI','LAG_GV')),),
7214            INST_CALCUL       =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ),
7215          ),
7216          MODE_VIBR     =FACT(statut='f',min=1,max=1,
7217            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ),
7218            NB_FREQ          =SIMP(statut='f',typ='I',max=1,defaut=3,
7219                             fr="Nombre de fréquences propres à calculer"),
7220            BANDE            =SIMP(statut='f',typ='R',min=2,max=2,
7221                             fr="Valeur des deux fréquences délimitant la bande de recherche",),
7222            INST_CALCUL       =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ),
7223          ),
7224 #-------------------------------------------------------------------
7225            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
7226                                fr="Liste des paramètres de sensibilité",
7227                                ang="List of sensitivity parameters"),
7228 #-------------------------------------------------------------------
7229          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
7230          b_info=BLOC(condition="(INFO==2)",
7231                fr="filtre les messages émis dans le .mess selon le type de message demandé",
7232                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
7233                                into=("CONTACT",
7234                                      "MECA_NON_LINE",
7235                                      "PILOTAGE",
7236                                      "FACTORISATION",
7237                                      "APPARIEMENT"),
7238                              ),
7239                     ),
7240          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7241 )  ;
7242 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
7243 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7244 # ======================================================================
7245 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7246 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7247 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7248 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7249 # (AT YOUR OPTION) ANY LATER VERSION.
7250 #
7251 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7252 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7253 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7254 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7255 #
7256 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7257 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7258 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7259 # ======================================================================
7260 # RESPONSABLE ZENTNER I.ZENTNER
7261 CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction,
7262                     fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps",
7263                     reentrant='n',
7264             UIinfo={"groupes":("Fonctions",)},
7265          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7266          INST_FIN        =SIMP(statut='o',typ='R' ),
7267          DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
7268          DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
7269          NB_POIN         =SIMP(statut='o',typ='I' ),
7270          FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
7271          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
7272          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ),
7273 )  ;
7274 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
7275 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7276 # ======================================================================
7277 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7278 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7279 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7280 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7281 # (AT YOUR OPTION) ANY LATER VERSION.
7282 #
7283 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7284 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7285 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7286 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7287 #
7288 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7289 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7290 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7291 # ======================================================================
7292 # RESPONSABLE GREFFET N.GREFFET
7293 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
7294                     fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés",
7295                     reentrant='n',
7296             UIinfo={"groupes":("Matrices et vecteurs",)},
7297          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
7298                  PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
7299                  PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
7300          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
7301          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
7302          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
7303          CHARGE          =SIMP(statut='o',typ=char_ther ),
7304          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
7305          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster ),
7306          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
7307          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
7308          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
7309          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7310          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7311          OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
7312          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
7313          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
7314          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
7315
7316          SOLVEUR         =FACT(statut='d',
7317            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
7318            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
7319              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
7320            ),
7321            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
7322              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
7323            ),
7324            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
7325                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
7326              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
7327              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7328            ),
7329            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
7330              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
7331              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
7332                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
7333                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
7334                ),
7335              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
7336                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
7337                ),
7338              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
7339              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
7340            ),
7341            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
7342              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
7343              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
7344              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
7345              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
7346              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
7347              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
7348              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.0E-6,),
7349              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
7350              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),             
7351              ),
7352            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
7353              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
7354              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
7355              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
7356                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
7357                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
7358                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
7359              ),
7360              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
7361                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
7362                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
7363              ),
7364              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
7365                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
7366                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
7367              ),
7368              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
7369              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
7370            ),
7371          ),
7372 )  ;
7373 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
7374 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7375 # ======================================================================
7376 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7377 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7378 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7379 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7380 # (AT YOUR OPTION) ANY LATER VERSION.
7381 #
7382 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7383 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7384 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7385 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7386 #
7387 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7388 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7389 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7390 # ======================================================================
7391 # RESPONSABLE PELLET J.PELLET
7392 def calc_matr_elem_prod(OPTION,**args):
7393   if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
7394   if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
7395   if OPTION == "MASS_MECA"        : return matr_elem_depl_r
7396   if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
7397   if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
7398   if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
7399   if OPTION == "MECA_GYRO"        : return matr_elem_depl_r
7400   if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
7401   if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
7402   if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
7403   if OPTION == "AMOR_MECA_ABSO"   : return matr_elem_depl_r
7404   if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
7405   if OPTION == "RIGI_THER"        : return matr_elem_temp_r
7406   if OPTION == "MASS_THER"        : return matr_elem_temp_r
7407   if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
7408   if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
7409   if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
7410   if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
7411   raise AsException("type de concept resultat non prevu")
7412
7413 CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
7414                     ,fr="Calcul des matrices élémentaires",reentrant='n',
7415             UIinfo={"groupes":("Matrices et vecteurs",)},
7416
7417          OPTION          =SIMP(statut='o',typ='TXM',
7418                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
7419                                      "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
7420                                      "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
7421                                      "RIGI_ROTA","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU",
7422                                      "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ),
7423          MODELE            =SIMP(statut='o',typ=modele_sdaster ),
7424
7425          # mots clés facultatifs que l'on a du mal à mettre dans les blocs
7426          # sans gener MACRO_MATR_ASSE :
7427          #------------------------------------------------------------------
7428          INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7429
7430
7431          b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
7432            CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
7433            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
7434            MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
7435            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
7436          ),
7437
7438          b_mass_meca   =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
7439            CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
7440            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
7441            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7442          ),
7443
7444          b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
7445            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7446            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem ),
7447            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
7448          ),
7449
7450          b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
7451            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7452            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
7453          ),
7454
7455          b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'",
7456            CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
7457            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
7458            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
7459          ),
7460
7461          b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
7462            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
7463                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
7464            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7465            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
7466            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
7467            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
7468            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7469          ),
7470
7471          b_amor_meca_abso  =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
7472            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
7473                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
7474            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7475            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7476            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
7477            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
7478            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7479          ),
7480
7481          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
7482            CHARGE            =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
7483            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
7484            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7485            RIGI_MECA         =SIMP(statut='o',typ=matr_elem_depl_r ),
7486          ),
7487
7488          b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
7489            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7490            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7491            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
7492            CHARGE            =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
7493          ),
7494
7495          b_mass_ther       =BLOC(condition = "OPTION=='MASS_THER'",
7496            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7497            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
7498            CHARGE            =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ),
7499          ),
7500
7501          b_rigi_acou       =BLOC(condition = "OPTION=='RIGI_ACOU'",
7502            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7503            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
7504          ),
7505
7506          b_mass_acou       =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
7507            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7508            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
7509          ),
7510
7511          b_rigi_flui       =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
7512            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
7513            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7514            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
7515          ),
7516
7517          b_mass_flui       =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
7518            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
7519            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7520            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
7521          ),
7522
7523          b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
7524            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
7525            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
7526          ),
7527 )  ;
7528 #& MODIF COMMANDE  DATE 13/01/2011   AUTEUR PELLET J.PELLET 
7529 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7530 # ======================================================================
7531 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7532 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7533 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7534 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7535 # (AT YOUR OPTION) ANY LATER VERSION.
7536 #
7537 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7538 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7539 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7540 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7541 #
7542 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7543 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7544 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7545 # ======================================================================
7546 # RESPONSABLE BARGELLINI R.BARGELLINI
7547 CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
7548             UIinfo={"groupes":("Post-traitements","Thermique",)},
7549                fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique",
7550          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
7551          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
7552          RESULTAT        =SIMP(statut='o',typ=evol_ther ),
7553          ETAT_INIT       =FACT(statut='o',
7554             regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
7555             EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
7556             META_INIT_ELNO  =SIMP(statut='f',typ=carte_sdaster ),
7557             b_etat     =BLOC(condition="EVOL_THER != None",
7558                regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),),
7559                NUME_INIT       =SIMP(statut='f',typ='I'),
7560                INST_INIT       =SIMP(statut='f',typ='R'),
7561                b_inst     =BLOC(condition="INST_INIT != None",
7562                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
7563                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
7564                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
7565                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
7566                       PRECISION       =SIMP(statut='o',typ='R',),),
7567                ),
7568             ),
7569          ),
7570          COMP_INCR       =FACT(statut='o',max=1,
7571            RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
7572            ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
7573            ZIRC            =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
7574       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
7575            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7576            GROUP_MA        =SIMP(statut='f',typ=grma, validators=NoRepeat(), max='**'),
7577            MAILLE          =SIMP(statut='f',typ=ma, validators=NoRepeat(), max='**'),
7578          ),
7579          OPTION          =SIMP(statut='f',typ='TXM'
7580                              ,into=("META_ELNO",) ),
7581 )  ;
7582 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR COURTOIS M.COURTOIS 
7583 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7584 # ======================================================================
7585 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7586 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7587 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7588 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7589 # (AT YOUR OPTION) ANY LATER VERSION.
7590 #
7591 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7592 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7593 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7594 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7595 #
7596 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7597 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7598 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7599 # ======================================================================
7600 # RESPONSABLE COURTOIS M.COURTOIS
7601
7602 def calc_miss_sdprod(self, TYPE_RESU, **kwargs):
7603     if TYPE_RESU == 'TABLE':
7604         return table_sdaster
7605     elif TYPE_RESU == 'HARM_GENE':
7606         return harm_gene
7607     elif TYPE_RESU == 'TRAN_GENE':
7608         return tran_gene
7609     else:
7610         return None
7611
7612 from Macro.calc_miss_ops import calc_miss_ops
7613
7614 CALC_MISS = MACRO(nom="CALC_MISS",
7615                   op=calc_miss_ops,
7616                   sd_prod=calc_miss_sdprod,
7617                   fr="Préparation des données, exécution du logiciel Miss3D, et post-traitement",
7618                   UIinfo={"groupes":("Résolution","Outils-métier",)},
7619
7620     TYPE_RESU   = SIMP(statut='o', typ='TXM', into=('HARM_GENE', 'TRAN_GENE', 'TABLE', 'FICHIER'),
7621                        fr="Type de résultat produit en post-traitement. FICHIER : pas de post-traitement"),
7622     PROJET      = SIMP(statut='f', typ='TXM', defaut='MODELE',
7623                        fr="Nom de l'étude Miss"),
7624     REPERTOIRE  = SIMP(statut='f', typ='TXM',
7625                        fr="Répertoire de travail de Miss"),
7626     VERSION     = SIMP(statut='f', typ='TXM', into=("V6.6","V6.5"), defaut="V6.6",
7627                        fr="Version de Miss utilisée"),
7628
7629     TABLE_SOL   = SIMP(statut='o', typ=table_sdaster,
7630                        fr="Table des propriétés du sol"),
7631
7632     # pas de post-traitement
7633     b_fichier   = BLOC(condition="TYPE_RESU == 'FICHIER'",
7634                        regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'),),
7635         MACR_ELEM_DYNA  = SIMP(statut='f', typ=macr_elem_dyna,
7636                                fr="Macro élément produit en amont"),
7637         BASE_MODALE     = SIMP(statut='f', typ=mode_meca,
7638                                fr="Base de modes"),
7639         b_base_modale = BLOC(condition="BASE_MODALE is not None",
7640             MATR_RIGI       = SIMP(statut='f', typ=(matr_asse_depl_r, matr_asse_depl_c),),
7641             MATR_MASS       = SIMP(statut='f', typ=matr_asse_depl_r ),
7642         ),
7643         AMOR_REDUIT     = SIMP(statut='f', typ='R', max='**'),
7644         GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**',
7645                                fr="Groupe de mailles de l'interface"),
7646
7647         UNITE_IMPR_ASTER = SIMP(statut='f', typ='I', defaut=25,
7648                                 fr="Unité des résultats transmis par Code_Aster à Miss"),
7649         UNITE_RESU_IMPE  = SIMP(statut='f', typ='I', defaut=38,
7650                                 fr="Unité logique des impédances écrites par Miss"),
7651         UNITE_RESU_FORC  = SIMP(statut='f', typ='I', defaut=28,
7652                                 fr="Unité logique des forces sismiques écrites par Miss"),
7653     ),
7654     # si post-traitement
7655     b_donnees   = BLOC(condition="TYPE_RESU != 'FICHIER'",
7656         MACR_ELEM_DYNA  = SIMP(statut='f', typ=macr_elem_dyna,
7657                                fr="Macro élément produit en amont"),
7658         BASE_MODALE     = SIMP(statut='o', typ=mode_meca,
7659                                fr="Base de modes"),
7660         MATR_RIGI       = SIMP(statut='o', typ=(matr_asse_depl_r, matr_asse_depl_c),),
7661         MATR_MASS       = SIMP(statut='o', typ=matr_asse_depl_r ),
7662         AMOR_REDUIT     = SIMP(statut='o', typ='R', max='**'),
7663         GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**',
7664                                fr="Groupe de mailles de l'interface"),
7665
7666         UNITE_IMPR_ASTER = SIMP(statut='f', typ='I',
7667                                 fr="Unité des résultats transmis par Code_Aster à Miss"),
7668         UNITE_RESU_IMPE  = SIMP(statut='f', typ='I',
7669                                 fr="Unité logique des impédances à relire."),
7670         UNITE_RESU_FORC  = SIMP(statut='f', typ='I',
7671                                 fr="Unité logique des forces sismiques à relire"),
7672     ),
7673     # Paramètres du calcul Miss
7674     PARAMETRE   = FACT(statut='o',
7675                        regles=(PRESENT_PRESENT('OFFSET_MAX', 'OFFSET_NB'),
7676                                PRESENT_PRESENT('FREQ_MIN', 'FREQ_MAX','FREQ_PAS'),
7677                                UN_PARMI('FREQ_MIN', 'LIST_FREQ'),
7678                                PRESENT_PRESENT('SPEC_MAX', 'SPEC_NB'),),
7679         FREQ_MIN       = SIMP(statut='f', typ='R'),
7680         FREQ_MAX       = SIMP(statut='f', typ='R'),
7681         FREQ_PAS       = SIMP(statut='f', typ='R'),
7682         LIST_FREQ      = SIMP(statut='f', typ='R', max='**'),
7683         Z0             = SIMP(statut='f', typ='R', defaut=0.),
7684         SURF           = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"),
7685         RFIC           = SIMP(statut='f', typ='R', defaut=0.),
7686
7687         ALGO           = SIMP(statut='f', typ='TXM', into=("DEPL","REGU")),
7688         DREF           = SIMP(statut='f', typ='R'),
7689         SPEC_MAX       = SIMP(statut='f', typ='R'),
7690         SPEC_NB        = SIMP(statut='f', typ='I'),
7691         OFFSET_MAX     = SIMP(statut='f', typ='R'),
7692         OFFSET_NB      = SIMP(statut='f', typ='I'),
7693         TYPE           = SIMP(statut='f', typ='TXM', into=("BINAIRE","ASCII",), defaut="ASCII"),
7694     ),
7695     # Post-traitement type 1 - tran_gene
7696     b_post_tran_gene = BLOC(condition="TYPE_RESU == 'TRAN_GENE'",
7697                        regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),),
7698         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
7699         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
7700         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
7701         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
7702         INST_FIN       = SIMP(statut='o', typ='R', fr="Instant final du calcul"),
7703         PAS_INST       = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"),
7704     ),
7705     # Post-traitement type 1 - harm_gene
7706     b_post_harm_gene  = BLOC(condition="TYPE_RESU == 'HARM_GENE'",
7707                        regles=(AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z'),
7708                                PRESENT_ABSENT('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z', 'INST_FIN'),
7709                                ENSEMBLE('INST_FIN', 'PAS_INST'),),
7710         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
7711         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
7712         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
7713         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
7714         INST_FIN       = SIMP(statut='f', typ='R', fr="Instant final du calcul"),
7715         PAS_INST       = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"),
7716         # identique à EXCIT de DYNA_LINE_HARM au type attendu pour VECT_ASSE près
7717         EXCIT_HARMO    = FACT(statut='f', max='**',
7718                               regles=(UN_PARMI('VECT_ASSE', 'CHARGE'),
7719                                       UN_PARMI('FONC_MULT', 'FONC_MULT_C', 'COEF_MULT', 'COEF_MULT_C'),),
7720             VECT_ASSE     = SIMP(statut='f', typ=cham_no_sdaster,),
7721             CHARGE        = SIMP(statut='f', typ=char_meca),
7722             TYPE_CHARGE   = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",),),
7723             FONC_MULT_C   = SIMP(statut='f', typ=(fonction_c, formule_c),),
7724             COEF_MULT_C   = SIMP(statut='f', typ='C'),
7725             FONC_MULT     = SIMP(statut='f', typ=(fonction_sdaster, nappe_sdaster, formule) ),
7726             COEF_MULT     = SIMP(statut='f', typ='R'),
7727             PHAS_DEG      = SIMP(statut='f', typ='R', defaut=0.),
7728             PUIS_PULS     = SIMP(statut='f', typ='I', defaut=0),
7729         ),
7730     ),
7731     # Post-traitement type 2
7732     b_post_table = BLOC(condition="TYPE_RESU == 'TABLE'",
7733                         regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),),
7734         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
7735         GROUP_NO       = SIMP(statut='o', typ=grno, max='**',
7736                               fr="Liste des groupes de noeud de post-traitement"),
7737         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
7738         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
7739         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
7740         INST_FIN       = SIMP(statut='o', typ='R', fr="Instant final du calcul"),
7741         PAS_INST       = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"),
7742         NORME          = SIMP(statut='o', typ='R',
7743                               fr="Valeur de la norme du spectre d'oscillateur" ),
7744         AMOR_SPEC_OSCI = SIMP(statut='o', typ='R', max='**',
7745                               fr="Amortissement du spectre d'oscillateur"),
7746         LIST_FREQ      = SIMP(statut='f', typ=listr8_sdaster,
7747                               fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"),
7748     ),
7749
7750     INFO        = SIMP(statut='f', typ='I', defaut=1, into=(1,2)),
7751 )
7752
7753 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
7754 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7755 # ======================================================================
7756 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
7757 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7758 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7759 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7760 # (AT YOUR OPTION) ANY LATER VERSION.
7761 #
7762 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7763 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7764 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7765 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7766 #
7767 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7768 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7769 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7770 # ======================================================================
7771 # RESPONSABLE NISTOR I.NISTOR
7772
7773 from Macro.calc_modal_ops import calc_modal_ops
7774
7775 def calc_modal_prod(self,AMORTISSEMENT,**args):
7776   if AMORTISSEMENT=="NON": return mode_meca
7777   if AMORTISSEMENT=="OUI": return mode_meca_c
7778   raise AsException("type de concept resultat non prevu")
7779
7780
7781 CALC_MODAL=MACRO(nom="CALC_MODAL",op=calc_modal_ops,
7782             UIinfo={"groupes":("Résolution","Dynamique",)},
7783                       sd_prod=calc_modal_prod,
7784                     fr="Calcul des modes propres reels ou complexes dans une seule commande",
7785          MODELE          =SIMP(statut='o',typ=modele_sdaster),
7786          AMORTISSEMENT    =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
7787          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
7788          INST            =SIMP(statut='f',typ='R',defaut=0.),
7789          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
7790          CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7791          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
7792                                into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
7793          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
7794            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
7795            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
7796            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
7797            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
7798          ),
7799          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
7800            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
7801            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
7802            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
7803            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
7804          ),
7805          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
7806            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
7807            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
7808            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
7809          ),
7810          b_qz =BLOC(condition = "METHODE == 'QZ'",
7811            TYPE_QZ      =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),
7812          ),
7813          MODE_RIGIDE          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
7814                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
7815          CALC_FREQ       =FACT(statut='d',min=0,
7816              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
7817                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
7818              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
7819                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
7820              ),
7821              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
7822                                   fr="Recherche des valeurs propres les plus proches d une valeur donnée",
7823                FREQ            =SIMP(statut='o',typ='R',
7824                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
7825                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
7826                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
7827              ),
7828              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
7829                                    fr="Recherche des valeurs propres dans une bande donnée",
7830                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
7831                                      fr="Valeur des deux fréquences délimitant la bande de recherche"),
7832              ),
7833              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
7834                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
7835              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
7836              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
7837              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
7838              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
7839              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
7840              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
7841              STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7842            ),
7843
7844         VERI_MODE       =FACT(statut='d',min=0,
7845            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7846            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
7847            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
7848                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
7849            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7850          ),
7851
7852          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7853          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
7854 )  ;
7855 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
7856 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7857 # ======================================================================
7858 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
7859 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7860 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7861 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7862 # (AT YOUR OPTION) ANY LATER VERSION.
7863 #
7864 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7865 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7866 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7867 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7868 #
7869 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7870 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7871 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7872 # ======================================================================
7873 # RESPONSABLE TORKHANI M.TORKHANI
7874
7875 from Macro.calc_mode_rotation_ops import calc_mode_rotation_ops
7876
7877 CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION",op=calc_mode_rotation_ops,sd_prod=table_container,
7878                   reentrant='n',fr="calculer les fréquences et modes d'un système en fonction des vitesses de rotation",
7879                   UIinfo={"groupes":("Résolution","Dynamique",)},
7880
7881                   MATR_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
7882                   MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
7883                   MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
7884                   MATR_GYRO       =SIMP(statut='f',typ=matr_asse_depl_r ),
7885                   VITE_ROTA       =SIMP(statut='f',typ='R',max='**'),
7886
7887                   METHODE         =SIMP(statut='f',typ='TXM',defaut="QZ",
7888                                         into=("QZ","SORENSEN",) ),
7889
7890                   CALC_FREQ       =FACT(statut='d',min=0,
7891                          OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","CENTRE",),
7892                                            fr="Choix de l option et par conséquent du shift du problème modal" ),
7893                   b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
7894                               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
7895                               ),
7896                   b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
7897                                 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
7898                               FREQ            =SIMP(statut='o',typ='R',
7899                                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
7900                               AMOR_REDUIT     =SIMP(statut='f',typ='R',),
7901                               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
7902                               ),
7903                              ),
7904
7905                   VERI_MODE       =FACT(statut='d',min=0,
7906                   STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7907                   SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
7908                   PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
7909                   STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),),
7910 );
7911 #& MODIF COMMANDE  DATE 02/02/2011   AUTEUR PELLET J.PELLET 
7912 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7913 # ======================================================================
7914 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7915 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7916 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7917 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7918 # (AT YOUR OPTION) ANY LATER VERSION.
7919 #
7920 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7921 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7922 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7923 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7924 #
7925 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7926 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7927 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7928 # ======================================================================
7929 # RESPONSABLE DESROCHES X.DESROCHES
7930 def calc_no_prod(RESULTAT,**args):
7931    if AsType(RESULTAT) != None : return AsType(RESULTAT)
7932    raise AsException("type de concept resultat non prevu")
7933
7934 CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='f',
7935             fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds",
7936             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
7937          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
7938
7939          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
7940                         'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
7941                  ),
7942          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7943          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7944          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7945          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
7946          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
7947          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7948          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7949          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
7950          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
7951          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
7952          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
7953          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
7954              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
7955          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
7956              PRECISION       =SIMP(statut='o',typ='R',),),
7957          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
7958                                into=("FORC_NODA","REAC_NODA",
7959                                      "DERA_NOEU",
7960                                      "DURT_NOEU",
7961                                      "EFCA_NOEU","EFGE_NOEU",
7962                                      "ENDO_NOEU",
7963                                      "ENEL_NOEU",
7964                                      "EPMG_NOEU",
7965                                      "EPSG_NOEU",
7966                                      "EPSI_NOEU",
7967                                      "EPSP_NOEU"     ,
7968                                      "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU",
7969                                      "EPMQ_NOEU","EPEQ_NOEU","SIEQ_NOEU",
7970                                      "ERME_NOEU","ERTH_NOEU","QIRE_NOEU",
7971                                      "FLUX_NOEU",
7972                                      "HYDR_NOEU",
7973                                      "INTE_NOEU",
7974                                      "META_NOEU",
7975                                      "PMPB_NOEU",
7976                                      "PRAC_NOEU",
7977                                      "SIEF_NOEU",
7978                                      "SICA_NOEU","SICO_NOEU","SIGM_NOEU",
7979                                      "SIPO_NOEU",
7980                                      "VAEX_NOEU","VARI_NOEU","DISS_NOEU",) ),
7981
7982
7983          MODELE          =SIMP(statut='f',typ=modele_sdaster),
7984          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
7985          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
7986          EXCIT           =FACT(statut='f',max='**',
7987            CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou,char_cine_meca) ),
7988            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7989            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
7990                                  into=("FIXE_CSTE","FIXE_PILO","SUIV") ),
7991          ),
7992
7993          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7994          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7995          MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
7996
7997 )  ;
7998 #& MODIF COMMANDE  DATE 07/12/2010   AUTEUR GENIAUT S.GENIAUT 
7999 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8000 # ======================================================================
8001 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
8002 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8003 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8004 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8005 # (AT YOUR OPTION) ANY LATER VERSION.
8006 #
8007 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8008 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8009 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8010 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8011 #
8012 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8013 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8014 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8015 # ======================================================================
8016 # RESPONSABLE PROIX J-M.PROIX
8017 CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant='f',
8018             UIinfo={"groupes":("Résolution",)},
8019             fr="Intégrer une loi de comportement",
8020      MATER           =SIMP(statut='o',typ=mater_sdaster,max=1),
8021      COMP_INCR       =C_COMP_INCR(),
8022      COMP_ELAS       =C_COMP_ELAS('CALC_POINT_MAT'),
8023      INCREMENT       =C_INCREMENT(),
8024      NEWTON          =C_NEWTON(),
8025      CONVERGENCE     =C_CONVERGENCE(),
8026
8027     # --MASSIF : orientation du materiau (monocristal, orthotropie)
8028      MASSIF          =FACT(statut='f',max='**',
8029                     regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
8030          ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
8031          ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
8032       ),
8033     ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées.
8034      ANGLE      =SIMP(statut='f',typ='R',max=1, defaut=0.),
8035      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2)),
8036
8037      regles=(UN_PARMI('SIXX','EPXX'),UN_PARMI('SIYY','EPYY'),UN_PARMI('SIZZ','EPZZ'),
8038              UN_PARMI('SIXY','EPXY'),UN_PARMI('SIXZ','EPXZ'),UN_PARMI('SIYZ','EPYZ'),),
8039      SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8040      SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8041      SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8042      SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8043      SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8044      SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8045      EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8046      EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8047      EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8048      EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8049      EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8050      EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8051
8052      SIGM_INIT=FACT(statut='f',
8053             SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8054             SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8055             SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8056             SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8057             SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8058             SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
8059                        ),
8060      EPSI_INIT=FACT(statut='f',
8061             EPXX = SIMP(statut='o',typ='R',max=1),
8062             EPYY = SIMP(statut='o',typ='R',max=1),
8063             EPZZ = SIMP(statut='o',typ='R',max=1),
8064             EPXY = SIMP(statut='o',typ='R',max=1),
8065             EPXZ = SIMP(statut='o',typ='R',max=1),
8066             EPYZ = SIMP(statut='o',typ='R',max=1),
8067                        ),
8068      VARI_INIT=FACT(statut='f',
8069             VALE = SIMP(statut='o',typ='R',max='**'),
8070                        ),
8071      MATR_C1=FACT(statut='f',max='**',
8072            VALE          =SIMP(statut='o',typ='R',max=1, ),
8073            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
8074            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
8075                               ),
8076      MATR_C2=FACT(statut='f',max='**',
8077            VALE          =SIMP(statut='o',typ='R',max=1, ),
8078            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
8079            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
8080                               ),
8081      VECT_IMPO=FACT(statut='f',max='**',
8082            VALE          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ),
8083            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
8084                               ),
8085       NB_VARI_TABLE  =SIMP(statut='f',typ='I',max=1,),
8086
8087       ARCHIVAGE       =FACT(statut='f',
8088        LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
8089        INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
8090        PAS_ARCH        =SIMP(statut='f',typ='I' ),
8091        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-6),
8092                            ),
8093      );
8094
8095 #& MODIF COMMANDE  DATE 28/02/2011   AUTEUR BARGELLI R.BARGELLINI 
8096 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8097 # ======================================================================
8098 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8099 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8100 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8101 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8102 # (AT YOUR OPTION) ANY LATER VERSION.
8103 #
8104 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8105 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8106 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8107 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8108 #
8109 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8110 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8111 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8112 # ======================================================================
8113 # RESPONSABLE MICHEL S.MICHEL
8114
8115 from Macro.calc_precont_ops import calc_precont_ops
8116
8117
8118 # ===========================================================================
8119 #           CATALOGUE DE LA MACRO "CALC_PRECONT"
8120 #           -----------------------------------------
8121 # USAGE :
8122 #
8123 #
8124 # ===========================================================================
8125
8126 CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
8127                    fr="Imposer la tension définie par le BPEL dans les cables",
8128                    reentrant='f',UIinfo={"groupes":("Modélisation",)},
8129          reuse =SIMP(statut='f',typ='evol_noli'),
8130          MODELE           =SIMP(statut='o',typ=modele_sdaster),
8131          CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
8132          CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
8133          CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
8134          CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
8135          INCREMENT        =C_INCREMENT(),
8136          RECH_LINEAIRE    =C_RECH_LINEAIRE(),
8137          CONVERGENCE      =C_CONVERGENCE(),
8138           ETAT_INIT       =FACT(statut='f',
8139             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
8140                     EXCLUS('EVOL_NOLI','DEPL',),
8141                     EXCLUS('EVOL_NOLI','SIGM',),
8142                     EXCLUS('EVOL_NOLI','VARI',),
8143                     EXCLUS('NUME_ORDRE','INST'), ),
8144             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
8145             SIGM            =SIMP(statut='f',typ=(carte_sdaster,cham_elem)),
8146             VARI            =SIMP(statut='f',typ=cham_elem),
8147             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
8148             NUME_ORDRE      =SIMP(statut='f',typ='I'),
8149             INST            =SIMP(statut='f',typ='R'),
8150             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8151             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
8152                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
8153             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
8154                 PRECISION       =SIMP(statut='o',typ='R',),),
8155             NUME_DIDI       =SIMP(statut='f',typ='I'),
8156             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
8157           ),
8158          METHODE = SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPL_EX")),
8159          b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'",
8160                            NEWTON = C_NEWTON(),
8161                         ),
8162          b_meth_impl_ex = BLOC(condition = "METHODE == 'IMPL_EX'",
8163                            IMPL_EX = C_IMPL_EX(),
8164                         ),
8165           SOLVEUR         =C_SOLVEUR(),
8166           INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
8167           TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
8168
8169           EXCIT           =FACT(statut='o',max='**',
8170             CHARGE          =SIMP(statut='o',typ=char_meca),
8171           ),
8172
8173          COMP_INCR       =C_COMP_INCR(),
8174   )  ;
8175 #& MODIF COMMANDE  DATE 02/02/2011   AUTEUR PELLET J.PELLET 
8176 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8177 # ======================================================================
8178 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8179 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8180 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8181 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8182 # (AT YOUR OPTION) ANY LATER VERSION.
8183 #
8184 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8185 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8186 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8187 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8188 #
8189 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8190 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8191 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8192 # ======================================================================
8193 # ======================================================================
8194 # RESPONSABLE GNICOLAS
8195 def calc_sensi_prod(RESULTAT,**args):
8196    if AsType(RESULTAT) != None : return AsType(RESULTAT)
8197    raise AsException("type de concept resultat non prevu")
8198
8199 CALC_SENSI=OPER(nom="CALC_SENSI",op=132,sd_prod=calc_sensi_prod,reentrant='f',
8200             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
8201             fr="Compléter ou créer un résultat en calculant des champs dérivés )",
8202      MODELE          =SIMP(statut='f',typ=modele_sdaster),
8203      CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
8204      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
8205
8206      RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
8207                                       fr="Résultat d'une commande globale"),
8208
8209      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
8210                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
8211              CONCEPT_SENSIBLE("SEPARE"),
8212              DERIVABLE('RESULTAT'),),
8213      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8214      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8215      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8216      NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
8217      NOM_CAS         =SIMP(statut='f',typ='TXM' ),
8218      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8219      FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8220      LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
8221      LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
8222      CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
8223      b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
8224          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
8225      b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
8226          PRECISION       =SIMP(statut='o',typ='R'),),
8227      LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
8228      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8229      GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
8230                            fr="le calcul ne sera effectué que sur ces mailles là"),
8231      MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
8232                            fr="le calcul ne sera effectué que sur ces mailles là"),
8233
8234      OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
8235
8236                   into=('DEDE_ELNO','DEDE_NOEU','DESI_ELNO',
8237                   'DESI_NOEU','DETE_ELNO','DETE_NOEU',
8238                   'EFGE_ELNO','EPSI_ELGA','EPSI_ELNO',
8239                   'EPSP_ELNO','FLUX_ELNO','FLUX_NOEU','REAC_NODA','SIEF_ELGA',
8240                   'SIEF_ELNO','SIEF_NOEU',
8241                   'SIGM_ELNO','SIGM_NOEU',
8242                   'SIPO_ELNO','VARI_ELNO'),
8243             ),
8244
8245
8246    # -- mots cles inutiles mais qui permettent de reutiliser certaines routines :
8247      EXCIT =FACT(statut='f',max='**', CHARGE=SIMP(statut='o',typ=(char_meca,) ),),
8248      NORME =SIMP(statut='f',typ='TXM',defaut="XXXX", into=("XXXX",),),
8249
8250
8251      SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
8252                            fr="Liste des paramètres de sensibilité.",
8253                            ang="List of sensitivity parameters"),
8254      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8255      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8256 ) ;
8257 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
8258 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8259 # ======================================================================
8260 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
8261 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8262 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8263 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8264 # (AT YOUR OPTION) ANY LATER VERSION.
8265 #
8266 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8267 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8268 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8269 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8270 #
8271 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8272 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8273 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8274 # ======================================================================
8275
8276 # RESPONSABLE CORUS M.CORUS
8277
8278 from Macro.calc_spec_ops import calc_spec_ops
8279
8280 CALC_SPEC=MACRO(nom="CALC_SPEC",op= calc_spec_ops,sd_prod=table_fonction,
8281                      reentrant='n',
8282                      fr="Calcule une matrice interspectrale ou des fonctions de transferts",
8283                      UIinfo={"groupes":("Fonctions",)},
8284          TAB_ECHANT      =FACT(statut='f',
8285            NOM_TAB         =SIMP(statut='o',typ=table_sdaster),
8286            LONGUEUR_ECH    =FACT(statut='f',
8287              DUREE           =SIMP(statut='f',typ='R'),
8288              POURCENT        =SIMP(statut='f',typ='R'),
8289              NB_PTS          =SIMP(statut='f',typ='I'),
8290                               ),
8291            RECOUVREMENT  =FACT(statut='f',
8292              DUREE           =SIMP(statut='f',typ='R'),
8293              POURCENT        =SIMP(statut='f',typ='R'),
8294              NB_PTS          =SIMP(statut='f',typ='I'),
8295                                 ),
8296                               ),
8297          ECHANT          =FACT(statut='f',max='**',
8298            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
8299            NUME_MES        =SIMP(statut='o',typ='I' ),
8300            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
8301                               ),
8302 #-- Cas de la matrice interspectrale --#
8303          INTERSPE        =FACT(statut='f',
8304            FENETRE         =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
8305            BLOC_DEFI_FENE  =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ",
8306              DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
8307                                  ),
8308                               ),
8309 #-- Cas des transferts - estimateurs H1 / H2 / Hv + Coherence --#
8310          TRANSFERT       =FACT(statut='f',
8311            ESTIM           =SIMP(statut='f',typ='TXM',defaut="H1",into=("H1","H2","CO",)),
8312            REFER           =SIMP(statut='o',typ='I',max='**'),
8313            FENETRE         =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
8314 #           DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
8315            BLOC_DEFI_FENE  =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ",
8316              DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
8317                                  ),
8318                               ),
8319          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8320          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8321 );
8322 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
8323 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8324 # ======================================================================
8325 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
8326 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8327 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8328 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8329 # (AT YOUR OPTION) ANY LATER VERSION.
8330 #
8331 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8332 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8333 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8334 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8335 #
8336 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8337 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8338 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8339 # ======================================================================
8340 # -*- coding: iso-8859-1 -*-
8341 # RESPONSABLE COURTOIS M.COURTOIS
8342
8343 def calc_table_prod(self, TABLE, ACTION, **kargs):
8344    """Typage du concept produit.
8345    """
8346    l_typ = [AsType(TABLE),]
8347    for mcf in ACTION:
8348       dmc = mcf.cree_dict_valeurs(mcf.mc_liste)
8349       if dmc.get('TABLE') != None:
8350          l_typ.append(AsType(dmc['TABLE']))
8351    # une table_fonction étant une table
8352    if table_fonction in l_typ:
8353       return table_fonction
8354    else:
8355       return table_sdaster
8356
8357
8358 from Macro.calc_table_ops import calc_table_ops
8359
8360 CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
8361                  fr="Opérations sur une table",
8362                  UIinfo={"groupes":("Tables",)},
8363                  reentrant='f',
8364    regles=(DERIVABLE('TABLE'),),
8365    TABLE  = SIMP(statut='o',typ=table_sdaster),
8366    ACTION = FACT(statut='o', max='**',
8367                     fr = "Suite des opérations à effectuer sur la table",
8368       OPERATION = SIMP(statut='o', typ='TXM',
8369                   into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'AJOUT', 'OPER', 'SUPPRIME')),
8370
8371       b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
8372                       fr="Sélectionne les lignes de la table vérifiant un critère",
8373          NOM_PARA  = SIMP(statut='o',typ='TXM'),
8374          CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
8375                           into=('EQ','NE','GT','LT','GE','LE','REGEXP',
8376                                 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),),
8377          b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
8378             regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
8379             VALE   = SIMP(statut='f',typ='R',max='**'),
8380             VALE_I = SIMP(statut='f',typ='I',max='**'),
8381             VALE_C = SIMP(statut='f',typ='C',max='**'),
8382             VALE_K = SIMP(statut='f',typ='TXM',max='**'),
8383          ),
8384          b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
8385             VALE_K = SIMP(statut='o',typ='TXM',max='**'),
8386          ),
8387          b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
8388             CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8389             PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
8390          ),
8391       ),
8392
8393       b_extr = BLOC(condition="OPERATION ==  'EXTR'",
8394                     fr="Extrait une ou plusieurs colonnes de la table",
8395          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
8396                          fr="Noms des colonnes à extraire"),
8397       ),
8398
8399       b_suppr = BLOC(condition="OPERATION ==  'SUPPRIME'",
8400                     fr="Supprime une ou plusieurs colonnes de la table",
8401          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
8402                          fr="Noms des colonnes à supprimer"),
8403       ),
8404
8405       b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
8406                        fr="Renomme un ou plusieurs paramètres de la table",
8407          NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
8408                          fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
8409       ),
8410
8411       b_tri = BLOC(condition="OPERATION == 'TRI'",
8412                    fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
8413          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
8414          ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
8415                          into=("CROISSANT","DECROISSANT") ),
8416       ),
8417
8418       b_comb = BLOC(condition="OPERATION == 'COMB'",
8419                     fr="Combine deux tables ayant éventuellement des paramètres communs",
8420          TABLE    = SIMP(statut='o',typ=table_sdaster,
8421                          fr="Table dont les colonnes vont venir surcharger la table initiale"),
8422          NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
8423                          fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
8424                             "pour que les colonnes soient combinées"),
8425          RESTREINT = SIMP(statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON',
8426                           fr="Restreint la fusion uniquement aux lignes où les NOM_PARA sont communs"),
8427       ),
8428
8429       b_append = BLOC(condition="OPERATION == 'AJOUT'",
8430                     fr="Ajoute une ligne à la table initiale",
8431          NOM_PARA = SIMP(statut='o',typ='TXM',max='**',
8432                          fr="Noms des paramètres dont les valeurs sont fournies sous VALE"),
8433          VALE     = SIMP(statut='o',typ=assd,max='**', fr='Valeurs des paramètres'),
8434       ),
8435
8436       b_oper = BLOC(condition="OPERATION == 'OPER'",
8437                     fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
8438          FORMULE  = SIMP(statut='o',typ=formule,
8439                          fr="Formule à appliquer aux colonnes de la table"),
8440          NOM_PARA = SIMP(statut='o',typ='TXM',
8441                          fr="Nom de la nouvelle colonne"),
8442       ),
8443    ),
8444
8445    SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1,
8446                       fr="Paramètre de sensibilité",
8447                       ang="Sensitivity parameter"),
8448    TITRE = SIMP(statut='f',typ='TXM',max='**',
8449                 fr="Titre de la table produite"),
8450    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
8451 )
8452 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
8453 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8454 # ======================================================================
8455 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8456 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8457 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8458 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8459 # (AT YOUR OPTION) ANY LATER VERSION.
8460 #
8461 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8462 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8463 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8464 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8465 #
8466 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8467 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8468 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8469 # ======================================================================
8470 # RESPONSABLE GALENNE E.GALENNE
8471 CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
8472             UIinfo={"groupes":("Post-traitements","Rupture",)},
8473                 fr="Définir un champ theta pour le calcul du taux de restitution d'énergie"
8474                     +" ou des facteurs d'intensité de contraintes",
8475          regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
8476                  PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
8477                  EXCLUS('DIRECTION','DIRE_THETA'),),
8478          OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
8479          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
8480          THETA_3D        =FACT(statut='f',max='**',
8481            regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
8482                    UN_PARMI('MODULE','MODULE_FO'),
8483                    ENSEMBLE('MODULE','R_INF','R_SUP'),
8484                    ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
8485            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8486            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8487            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8488            MODULE          =SIMP(statut='f',typ='R'),
8489            R_INF           =SIMP(statut='f',typ='R'),
8490            R_SUP           =SIMP(statut='f',typ='R'),
8491            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
8492            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
8493            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
8494                          ),
8495          b_theta_3d     =BLOC(condition="THETA_3D != None",
8496            FOND_FISS       =SIMP(statut='o',typ=fond_fiss),),
8497          DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
8498          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
8499          THETA_2D        =FACT(statut='f',max='**',
8500            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
8501            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8502            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8503            MODULE          =SIMP(statut='o',typ='R'),
8504            R_INF           =SIMP(statut='o',typ='R'),
8505            R_SUP           =SIMP(statut='o',typ='R'),
8506          ),
8507          THETA_BANDE     =FACT(statut='f',max='**',
8508            MODULE          =SIMP(statut='o',typ='R'),
8509            R_INF           =SIMP(statut='o',typ='R'),
8510            R_SUP           =SIMP(statut='o',typ='R'),
8511          ),
8512          GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
8513          IMPRESSION      =FACT(statut='f',
8514            UNITE           =SIMP(statut='f',typ='I',defaut=8),
8515            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
8516          ),
8517 )  ;
8518 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
8519 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8520 # ======================================================================
8521 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8522 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8523 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8524 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8525 # (AT YOUR OPTION) ANY LATER VERSION.
8526 #
8527 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8528 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8529 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8530 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8531 #
8532 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8533 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8534 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8535 # ======================================================================
8536 # RESPONSABLE PELLET J.PELLET
8537 def calc_vect_elem_prod(OPTION,**args):
8538   if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
8539   if OPTION == "CHAR_THER" :      return vect_elem_temp_r
8540   if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
8541   if OPTION == "FORC_NODA" :      return vect_elem_depl_r
8542   raise AsException("type de concept resultat non prevu")
8543
8544 CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n',
8545             UIinfo={"groupes":("Matrices et vecteurs",)},
8546                     fr="Calcul des seconds membres élémentaires",
8547          OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
8548                                                            "FORC_NODA") ),
8549          b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
8550            regles=(AU_MOINS_UN('CHARGE','MODELE'),),
8551            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
8552            MODELE          =SIMP(statut='f',typ=modele_sdaster),
8553            b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
8554               CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
8555               CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
8556               INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
8557               MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
8558            ),
8559            b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
8560               SOUS_STRUC      =FACT(statut='o',min=01,
8561                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
8562                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
8563                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8564                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
8565               ),
8566            ),
8567          ),
8568          b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
8569            CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
8570            CHARGE           =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'),
8571            INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
8572          ),
8573
8574          b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
8575            CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
8576            CHARGE            =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'),
8577          ),
8578
8579          b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
8580            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem),
8581            CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
8582            MODELE            =SIMP(statut='f',typ=modele_sdaster),
8583          ),
8584 ) ;
8585 #& MODIF COMMANDE  DATE 07/12/2010   AUTEUR GENIAUT S.GENIAUT 
8586 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8587 # ======================================================================
8588 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
8589 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8590 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8591 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8592 # (AT YOUR OPTION) ANY LATER VERSION.
8593 #
8594 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8595 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8596 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8597 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8598 #
8599 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8600 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8601 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8602 # ======================================================================
8603 # RESPONSABLE ABBAS M.ABBAS
8604
8605 CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f',
8606             UIinfo={"groupes":("Résolution",)},
8607             fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...",
8608      OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT",
8609                            into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INT_ELEM"),),
8610      MODELE          =SIMP(statut='o',typ=modele_sdaster),
8611      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
8612      CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
8613      TABLE           =SIMP(statut='f',typ=table_container),
8614      EXCIT           =FACT(statut='o',max='**',
8615        CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
8616        FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
8617        TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
8618                                  into=("FIXE_CSTE",)),
8619
8620      ),
8621      DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
8622      INCR_DEPL       =SIMP(statut='o',typ=cham_no_sdaster ),
8623      SIGM            =SIMP(statut='o',typ=cham_elem),
8624      VARI            =SIMP(statut='o',typ=cham_elem),
8625      INCREMENT       =FACT(statut='o',
8626           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
8627           NUME_ORDRE      =SIMP(statut='o',typ='I'),),
8628      COMP_INCR       =C_COMP_INCR(),
8629      COMP_ELAS       =C_COMP_ELAS('CALCUL'),
8630      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8631 ) ;
8632
8633 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
8634 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8635 # ======================================================================
8636 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8637 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8638 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8639 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8640 # (AT YOUR OPTION) ANY LATER VERSION.
8641 #
8642 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8643 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8644 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8645 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8646 #
8647 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8648 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8649 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8650 # ======================================================================
8651 # RESPONSABLE DESROCHES X.DESROCHES
8652 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
8653                   reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières",
8654             UIinfo={"groupes":("Post-traitements",)},
8655          RESULTAT        =SIMP(statut='o',typ=(fourier_elas,fourier_ther),),
8656          ANGL            =SIMP(statut='o',typ='R',max='**'),
8657          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6,into=("DEPL","REAC_NODA",
8658                                "SIEF_ELGA","EPSI_ELNO","SIGM_ELNO","TEMP","FLUX_ELNO"),),
8659 ) ;
8660 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
8661 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8662 # ======================================================================
8663 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8664 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8665 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8666 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8667 # (AT YOUR OPTION) ANY LATER VERSION.
8668 #
8669 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8670 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8671 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8672 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8673 #
8674 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8675 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8676 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8677 # ======================================================================
8678 # RESPONSABLE SELLENET N.SELLENET
8679 def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
8680   if COMB_C != None:
8681     type_mat = AsType(COMB_C[0]['MATR_ASSE'])
8682     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
8683     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
8684     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
8685     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
8686   elif COMB_R != None:
8687     type_mat = AsType(COMB_R[0]['MATR_ASSE'])
8688     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
8689     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
8690     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
8691     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
8692   elif CALC_AMOR_GENE != None: return matr_asse_gene_r
8693   raise AsException("type de concept resultat non prevu")
8694
8695 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
8696                     fr="Effectuer la combinaison linéaire de matrices assemblées",
8697                     reentrant='f',
8698             UIinfo={"groupes":("Matrices et vecteurs",)},
8699          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
8700          COMB_R          =FACT(statut='f',max='**',
8701            PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
8702            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
8703                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
8704            COEF_R          =SIMP(statut='o',typ='R' ),
8705          ),
8706          COMB_C          =FACT(statut='f',max='**',
8707            regles=(UN_PARMI('COEF_R','COEF_C' ),),
8708            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
8709                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
8710            COEF_R          =SIMP(statut='f',typ='R' ),
8711            COEF_C          =SIMP(statut='f',typ='C' ),
8712          ),
8713          CALC_AMOR_GENE   =FACT(statut='f',
8714            RIGI_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
8715            MASS_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
8716            regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
8717            AMOR_REDUIT  = SIMP(statut='f',typ='R',max='**'),
8718            LIST_AMOR    = SIMP(statut='f',typ=listr8_sdaster ),
8719          ),
8720          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
8721 )  ;
8722 #& MODIF COMMANDE  DATE 21/03/2011   AUTEUR MACOCCO K.MACOCCO 
8723 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8724 # ======================================================================
8725 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8726 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8727 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8728 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8729 # (AT YOUR OPTION) ANY LATER VERSION.
8730 #
8731 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8732 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8733 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8734 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8735 #
8736 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8737 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8738 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8739 # ======================================================================
8740 # RESPONSABLE AUDEBERT S.AUDEBERT
8741 COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca,
8742                      fr="Réponse sismique par recombinaison modale par une méthode spectrale",
8743                      reentrant='n',
8744             UIinfo={"groupes":("Post-traitements","Dynamique",)},
8745          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
8746                  UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),
8747                  UN_PARMI('MONO_APPUI','MULTI_APPUI' ),),
8748          MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
8749          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8750          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8751          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
8752          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8753          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8754          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
8755          b_freq          =BLOC(condition = "FREQ != None or LIST_FREQ != None",
8756            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
8757            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8758          ),
8759          MODE_CORR       =SIMP(statut='f',typ=mode_meca ),
8760
8761          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
8762          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
8763          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
8764
8765          MASS_INER       =SIMP(statut='f',typ=table_sdaster ),
8766          CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
8767
8768          EXCIT           =FACT(statut='o',max='**',
8769            regles=(UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
8770            AXE             =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",),
8771            TRI_AXE         =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",),
8772            TRI_SPEC        =SIMP(statut='f',typ='TXM',into=("OUI",),
8773                                  fr="Excitation suivant les trois axes  avec trois spectres"),
8774            b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
8775              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),),
8776              ECHELLE         =SIMP(statut='f',typ='R',),
8777            ),
8778            b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
8779              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),),
8780              ECHELLE         =SIMP(statut='f',typ='R',),
8781            ),
8782            b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
8783              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),min=3,max=3 ),
8784              ECHELLE         =SIMP(statut='f',typ='R',min=3,max=3),
8785            ),
8786            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
8787            b_mult_appui    =BLOC(condition = "(MULTI_APPUI != None)",
8788                                  regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
8789            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8790            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),)
8791          ),
8792          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),
8793                                  fr="excitation imposée unique" ),
8794          MULTI_APPUI      =SIMP(statut='f',typ='TXM',position='global',into=("DECORRELE","CORRELE"),
8795                                  fr="excitation imposée unique" ),
8796          b_decorrele     =BLOC(condition = "MULTI_APPUI == 'DECORRELE' ",
8797            GROUP_APPUI     =FACT(statut='f',max='**',
8798            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
8799            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8800            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
8801
8802          ),
8803          b_correle =BLOC(condition = "MULTI_APPUI == 'CORRELE' ",
8804            COMB_MULT_APPUI =FACT(statut='f',max='**',
8805            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
8806            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8807            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8808            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8809            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),),
8810          ),
8811
8812          COMB_MODE       =FACT(statut='o',
8813            TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
8814            DUREE           =SIMP(statut='f',typ='R' ),
8815          ),
8816          COMB_DIRECTION  =FACT(statut='f',
8817            TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
8818          ),
8819          COMB_DEPL_APPUI=FACT(statut='f',max='**',
8820            regles=(UN_PARMI('TOUT','LIST_CAS'),),
8821            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
8822            LIST_CAS       =SIMP(statut='f',typ='I',max='**'),
8823            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
8824          ),
8825          DEPL_MULT_APPUI =FACT(statut='f',max='**',
8826            regles=(UN_PARMI('NOEUD','GROUP_NO'),
8827                    AU_MOINS_UN('DX','DY','DZ' ),),
8828            NOM_CAS         =SIMP(statut='o',typ='TXM',max='**'),
8829            NUME_CAS        =SIMP(statut='o',typ='I',max='**'),
8830            MODE_STAT       =SIMP(statut='o',typ=mode_meca, ),
8831            NOEUD_REFE      =SIMP(statut='f',typ=no),
8832            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8833            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8834            DX              =SIMP(statut='f',typ='R' ),
8835            DY              =SIMP(statut='f',typ='R' ),
8836            DZ              =SIMP(statut='f',typ='R' ),
8837          ),
8838          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9,
8839                                into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO","SIEF_ELGA",
8840                                      "EFGE_ELNO","REAC_NODA","FORC_NODA","EFCA_ELNO",
8841                                      "SIPO_ELNO") ),
8842          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
8843          IMPRESSION      =FACT(statut='f',max='**',
8844            regles=(EXCLUS('TOUT','NIVEAU'),),
8845            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8846            NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ),
8847          ),
8848          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8849 )  ;
8850 #& MODIF COMMANDE  DATE 08/03/2011   AUTEUR MASSIN P.MASSIN 
8851 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8852 # ======================================================================
8853 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8854 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8855 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8856 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8857 # (AT YOUR OPTION) ANY LATER VERSION.
8858 #
8859 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8860 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8861 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8862 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8863 #
8864 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8865 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8866 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8867 # ======================================================================
8868 # RESPONSABLE PELLET J.PELLET
8869 def crea_champ_prod(TYPE_CHAM,**args):
8870   if TYPE_CHAM[0:5] == "CART_" :
8871      return carte_sdaster
8872   elif TYPE_CHAM[0:5] == "NOEU_" :
8873      return cham_no_sdaster
8874   elif TYPE_CHAM[0:2] == "EL"    :
8875      return cham_elem
8876   else :
8877      raise AsException("type de concept resultat_sdaster non prevu")
8878
8879
8880 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
8881                 fr="Création d'un champ ",reentrant='f',
8882             UIinfo={"groupes":("Résultats et champs",)},
8883          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
8884       # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
8885       # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs
8886 #        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
8887 #        ------------------------------------------------------------------
8888          regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
8889          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
8890          CHAM_NO         =SIMP(statut='f',typ=(cham_no_sdaster) ),
8891
8892 #        SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ :
8893 #        (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM)
8894 #        ------------------------------------------------------------------
8895          OPTION         =SIMP(statut='f',typ='TXM'),
8896
8897          OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R","COMB") ),
8898
8899 #        ------------------------------------------------------------------
8900          b_norm          =BLOC(condition = "OPERATION == 'NORMALE'",
8901                                regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
8902              MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
8903              GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
8904              MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
8905                              ),
8906 #        ------------------------------------------------------------------
8907          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
8908              regles=(UN_PARMI('MAILLAGE','MODELE'),),
8909              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
8910              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
8911              b_affe_modele   =BLOC(condition = "MODELE != None",
8912                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
8913              AFFE            =FACT(statut='o',max='**',
8914                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
8915                         UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),),
8916                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8917                 GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
8918                 MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
8919                 GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
8920                 NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
8921                 NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
8922                 VALE            =SIMP(statut='f',typ='R',max='**' ),
8923                 VALE_I          =SIMP(statut='f',typ='I',max='**' ),
8924                 VALE_C          =SIMP(statut='f',typ='C',max='**' ),
8925                 VALE_F          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
8926                                    ),
8927                              ),
8928 #        ------------------------------------------------------------------
8929          b_asse          =BLOC(condition = "OPERATION == 'ASSE'",
8930              regles=(UN_PARMI('MAILLAGE','MODELE'),),
8931              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
8932              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
8933              b_asse_modele   =BLOC(condition = "MODELE != None",
8934                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
8935              ASSE            =FACT(statut='o',max='**',
8936                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
8937                 PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
8938                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8939                 GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8940                 GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8941                 MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8942                 NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8943                 CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
8944                 NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
8945                 NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),
8946                 CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
8947                 COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
8948                 COEF_C          =SIMP(statut='f',typ='C',max=1),
8949                                     ),
8950                              ),
8951 #        ------------------------------------------------------------------
8952          b_comb          =BLOC(condition = "OPERATION == 'COMB'",
8953                                fr="Pour faire une combinaison linéaire de cham_no ayant meme profil",
8954              COMB            =FACT(statut='o',max='**',
8955                 CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
8956                 COEF_R          =SIMP(statut='o',typ='R'),
8957                                    ),
8958                              ),
8959 #        ------------------------------------------------------------------
8960          b_eval          =BLOC(condition = "OPERATION == 'EVAL'",
8961              CHAM_F          =SIMP(statut='o',typ=cham_gd_sdaster),
8962              CHAM_PARA       =SIMP(statut='o',typ=cham_gd_sdaster,max='**'),
8963                              ),
8964 #        ------------------------------------------------------------------
8965          b_r2c           =BLOC(condition = "OPERATION == 'R2C'",
8966              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
8967                              ),
8968 #        ------------------------------------------------------------------
8969          b_c2r           =BLOC(condition = "OPERATION == 'C2R'",
8970              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
8971              PARTIE           =SIMP(statut='o',typ='TXM',into=('REEL','IMAG','MODULE','PHASE'),),
8972                              ),
8973 #        ------------------------------------------------------------------
8974          b_disc          =BLOC(condition = "OPERATION == 'DISC'",
8975              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
8976              PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
8977              CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
8978                              ),
8979 #        ------------------------------------------------------------------
8980          b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
8981              regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),),
8982 #                     PRESENT_PRESENT('GRILLE_AUX','FISSURE'),),
8983              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
8984              FISSURE         =SIMP(statut='f',typ=(fiss_xfem) ),
8985              RESULTAT        =SIMP(statut='f',typ=(resultat_sdaster) ),
8986              TABLE           =SIMP(statut='f',typ=(table_sdaster),min=1,max=1),
8987              b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None",
8988                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)),
8989              ),
8990
8991              b_extr_fissure  = BLOC(condition = "FISSURE != None",
8992                  NOM_CHAM=SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC",
8993                                                                   "GRI.LNNO","GRI.LTNO","GRI.GRLNNO","GRI.GRLTNO")),
8994
8995              ),
8996                  
8997              b_extr_table    =BLOC(condition = "TABLE != None",
8998                       regles=( EXCLUS('MODELE','MAILLAGE'),
8999                                EXCLUS('PROL_ZERO','MAILLAGE'),),
9000                       MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster),),
9001                       MODELE          =SIMP(statut='f',typ=(modele_sdaster),),
9002                       OPTION          =SIMP(statut='f',typ='TXM'),
9003                       PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
9004                  ),
9005              b_extr_resultat =BLOC(condition = "RESULTAT != None",
9006                  regles=(DERIVABLE('RESULTAT'),),
9007                  SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
9008                                    fr="Paramètre de sensibilité.",
9009                                    ang="Sensitivity parameter"),
9010                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
9011                  TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
9012
9013                  # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre :
9014                  b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
9015                       TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
9016
9017                       regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
9018                                       'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
9019                       TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9020                       LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
9021                       LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
9022                       NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
9023                       INST            =SIMP(statut='f',typ='R',max='**'),
9024                       FREQ            =SIMP(statut='f',typ='R',max='**'),
9025                       NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
9026                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
9027                       NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
9028                       ANGL            =SIMP(statut='f',typ='R',max='**'),
9029                  ),
9030
9031                  # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre :
9032                  b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None",
9033                       regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
9034                       NUME_ORDRE      =SIMP(statut='f',typ='I'),
9035                       INST            =SIMP(statut='f',typ='R'),
9036                       FREQ            =SIMP(statut='f',typ='R'),
9037                       NUME_MODE       =SIMP(statut='f',typ='I'),
9038                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max=2),
9039                       NOM_CAS         =SIMP(statut='f',typ='TXM'),
9040                       ANGL            =SIMP(statut='f',typ='R'),
9041
9042                       INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
9043                  ),
9044
9045                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
9046                  b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9047                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9048                  b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9049                      PRECISION       =SIMP(statut='o',typ='R',),),
9050
9051          ),  # fin bloc b_extr
9052
9053
9054                ),
9055 # FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT :
9056 #-----------------------------------------------------
9057          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
9058          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
9059 )  ;
9060 #& MODIF COMMANDE  DATE 03/01/2011   AUTEUR ANDRIAM H.ANDRIAMBOLOLONA 
9061 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9062 # ======================================================================
9063 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9064 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
9065 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
9066 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9067 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
9068 #                                                                       
9069 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
9070 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
9071 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
9072 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
9073 #                                                                       
9074 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
9075 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
9076 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
9077 # ======================================================================
9078 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
9079
9080 from Macro.crea_elem_ssd_ops import crea_elem_ssd_ops
9081
9082 def crea_elem_ssd_prod(self,NUME_DDL,**args):
9083     if NUME_DDL:
9084         self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
9085     return macr_elem_dyna
9086
9087 CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD",
9088          op=crea_elem_ssd_ops,
9089          sd_prod=crea_elem_ssd_prod,
9090          reentrant='n',
9091          fr="Creation de macro-element dynamique en enchainant les commandes : \
9092              CALC_MATR_ELEM, NUME_DDL, ASSE_MATRICE, MODE_ITER_SIMULT, \
9093              DEFI_INTERF_DYNA, DEFI_BASE_MODALE et MACR_ELEM_DYNA",
9094          UIinfo={"groupes":("Matrices/vecteurs",)},
9095
9096 # pour CAL_MATR_ELEM + NUME_DDL + ASSE_MATRICE + MODE_ITER_SIMULT + MODE_STATIQUE
9097          MODELE          =SIMP(statut='o',typ=modele_sdaster),
9098          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
9099          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
9100          NUME_DDL        =SIMP(statut='f',typ=CO,defaut=None),
9101          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
9102
9103 # pour DEFI_INTERF_DYNA
9104          INTERFACE       =FACT(statut='o',max='**',
9105            regles=(ENSEMBLE('NOM','TYPE'),
9106                    UN_PARMI('NOEUD','GROUP_NO'),),
9107            NOM             =SIMP(statut='f',typ='TXM' ),
9108            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO",) ),
9109            NOEUD           =SIMP(statut='f',typ=no,max='**'),
9110            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
9111            FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
9112          ),
9113
9114 # pour DEFI_BASE_MODALE
9115          BASE_MODALE = FACT(statut='o',max = 1,
9116            TYPE   =SIMP(statut='o',typ='TXM',max=1,into=('CLASSIQUE','RITZ',)),
9117            b_ritz = BLOC(condition = "TYPE == 'RITZ' ",
9118              NMAX_MODE_INTF  =SIMP(statut='f',typ='I',defaut=10),
9119            ),
9120          ),
9121
9122          INFO          =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
9123
9124          SOLVEUR         =C_SOLVEUR(),
9125
9126 # pour le calcul modal
9127          CALC_FREQ       =FACT(statut='d',min=0,
9128              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
9129                                    fr="Choix de l option et par consequent du shift du probleme modal" ),
9130              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
9131                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
9132              ),
9133              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
9134                                   fr="Recherche des valeurs propres les plus proches d une valeur donnee",
9135                FREQ            =SIMP(statut='o',typ='R',
9136                                      fr="Frequence autour de laquelle on cherche les frequences propres"),
9137                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
9138                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
9139              ),
9140              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
9141                                    fr="Recherche des valeurs propres dans une bande donnee",
9142                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 9999,val_min=0 ),
9143                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max='**',
9144                                      fr="Valeurs des frequences delimitant les bandes de recherche"),
9145              ),
9146              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
9147                                    fr="Choix du pseudo-produit scalaire pour la resolution du probleme quadratique" ),
9148            ),
9149
9150
9151 )  ;
9152 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
9153 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9154 # ======================================================================
9155 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9156 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9157 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9158 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9159 # (AT YOUR OPTION) ANY LATER VERSION.
9160 #
9161 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9162 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9163 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9164 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9165 #
9166 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9167 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9168 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9169 # ======================================================================
9170 # RESPONSABLE PELLET J.PELLET
9171 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
9172             reentrant='n',fr="Crée un maillage à partir d'un maillage existant",
9173             UIinfo={"groupes":("Maillage",)},
9174          regles=(EXCLUS('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
9175                         'DETR_GROUP_MA', 'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE',
9176                         'QUAD_LINE', 'REPERE','RESTREINT','PENTA15_18',),),
9177
9178
9179
9180          # le MAILLAGE est inutile si ECLA_PG
9181          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
9182
9183          CREA_POI1       =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
9184            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
9185            NOM_GROUP_MA    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9186            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9187            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9188            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9189            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9190            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9191          ),
9192          CREA_MAILLE     =FACT(statut='f',max='**',fr="Duplication de mailles",
9193            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
9194            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9195            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9196            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9197            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
9198            PREF_NUME       =SIMP(statut='f',typ='I' ),
9199          ),
9200          CREA_GROUP_MA   =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles",
9201            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9202            NOM             =SIMP(statut='o',typ='TXM'),
9203            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9204            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9205            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9206            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
9207            PREF_NUME       =SIMP(statut='f',typ='I' ),
9208          ),
9209          DETR_GROUP_MA   =FACT(statut='f',fr="Destruction de groupes de mailles",
9210            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9211            NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,
9212                                  fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit",  ),
9213          ),
9214          RESTREINT   =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1,
9215            regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
9216            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9217            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9218            TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
9219            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9220            TOUT_GROUP_NO   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
9221          ),
9222          COQU_VOLU   =FACT(statut='f',
9223                            fr="Creation de mailles volumiques à partir de mailles surfaciques",
9224            NOM             =SIMP(statut='o',typ='TXM'),
9225            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'),
9226            EPAIS           =SIMP(statut='o',typ='R' ),
9227            PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
9228            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS" ),
9229            PREF_NUME       =SIMP(statut='f',typ='I'  ,defaut=1 ),
9230            PLAN            =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")),
9231            b_MOY =BLOC(condition = "PLAN == 'MOY'",
9232              TRANSLATION   =SIMP(statut='o',typ='TXM',into=("SUP","INF") ),
9233            ),
9234          ),
9235          MODI_MAILLE     =FACT(statut='f',max='**',fr="Modification du type de mailles",
9236            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9237            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9238            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9239            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
9240            OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),
9241                                  fr="Choix de la transformation" ),
9242            b_NOS =BLOC(condition = "OPTION == 'TRIA6_7'  or  OPTION == 'QUAD8_9'  or  OPTION == 'SEG3_4'",
9243              PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
9244              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
9245            ),
9246            b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'",
9247              PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
9248              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
9249            ),
9250          ),
9251          CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc",
9252            NOM             =SIMP(statut='o',typ='TXM'),
9253            GROUP_NO_1      =SIMP(statut='o',typ=grno),
9254            GROUP_NO_2      =SIMP(statut='o',typ=grno),
9255            PREF_MAILLE     =SIMP(statut='o',typ='TXM'),
9256            PREF_NUME       =SIMP(statut='f',typ='I',defaut=1 ),
9257          ),
9258          LINE_QUAD     =FACT(statut='f',fr="Passage linéaire -> quadratique",
9259            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9260            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9261            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9262            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
9263            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
9264            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
9265          ),
9266          HEXA20_27     =FACT(statut='f',fr="Passage HEXA20 -> HEXA27",
9267            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9268            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9269            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9270            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
9271            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
9272            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
9273          ),
9274          PENTA15_18     =FACT(statut='f',fr="Passage PENTA15 -> PENTA18",
9275            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9276            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9277            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9278            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
9279            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
9280            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
9281          ),
9282          QUAD_LINE     =FACT(statut='f',fr="Passage quadratique -> linéaire",
9283            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
9284            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9285            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9286            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
9287          ),
9288          REPERE          =FACT(statut='f',max='**',
9289                                fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
9290            TABLE           =SIMP(statut='o',typ=table_sdaster,
9291                                  fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
9292            NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
9293            NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),
9294            b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
9295              GROUP_MA        =SIMP(statut='f',typ=grma,
9296                                    fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
9297            ),
9298          ),
9299          ECLA_PG         =FACT(statut='f',
9300                                fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
9301            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
9302            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9303            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9304            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9305            SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
9306            TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
9307            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
9308          ),
9309          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9310 #
9311          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
9312 )  ;
9313 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
9314 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9315 # ======================================================================
9316 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9317 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9318 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9319 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9320 # (AT YOUR OPTION) ANY LATER VERSION.
9321 #
9322 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9323 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9324 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9325 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9326 #
9327 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9328 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9329 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9330 # ======================================================================
9331 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
9332 def crea_resu_prod(TYPE_RESU,**args):
9333   if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
9334   if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
9335   if TYPE_RESU == "EVOL_THER"    : return evol_ther
9336   if TYPE_RESU == "MULT_ELAS"    : return mult_elas
9337   if TYPE_RESU == "MODE_MECA"    : return mode_meca
9338   if TYPE_RESU == "DYNA_TRANS"   : return dyna_trans
9339   if TYPE_RESU == "DYNA_HARMO"   : return dyna_harmo
9340   if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
9341   if TYPE_RESU == "FOURIER_THER" : return fourier_ther
9342   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
9343   if TYPE_RESU == "EVOL_CHAR"    : return evol_char
9344   raise AsException("type de concept resultat non prevu")
9345
9346 CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
9347             UIinfo={"groupes":("Résultats et champs",)},
9348                fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds",
9349
9350          OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",),
9351                          fr="choix de la fonction a activer",),
9352
9353
9354          # Création par affectation de champs :
9355          #-------------------------------------
9356          b_affe       =BLOC(condition = "OPERATION == 'AFFE'",
9357
9358            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI",
9359                               "DYNA_HARMO","DYNA_TRANS","FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ),
9360            b_type_resu    =BLOC(condition = "TYPE_RESU == 'EVOL_CHAR'",
9361              NOM_CHAM     =SIMP(statut='o',typ='TXM',into=("PRES","FSUR_2D","FSUR_3D","FVOL_2D","FVOL_3D","VITE_VENT")),
9362            ),
9363
9364            b_evol_char    =BLOC(condition = "TYPE_RESU != 'EVOL_CHAR'",
9365              NOM_CHAM     =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
9366            ),
9367
9368            b_mode       =BLOC(condition = "TYPE_RESU == 'MODE_MECA'",
9369              MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,),
9370              MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,),
9371            ),
9372
9373            AFFE         =FACT(statut='o',max='**',
9374              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)),
9375              MODELE        =SIMP(statut='f',typ=modele_sdaster),
9376              CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
9377              CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
9378
9379              b_mult_elas     =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ",
9380                 NOM_CAS         =SIMP(statut='f',typ='TXM' ),
9381                 CHARGE          =SIMP(statut='f',typ=(char_meca),max='**'),
9382              ),
9383              b_evol          =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\
9384                                          or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR') or (TYPE_RESU=='DYNA_TRANS'))",
9385                 regles=(UN_PARMI('INST','LIST_INST'),),
9386                 INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9387                 LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9388                 NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
9389                 NUME_FIN        =SIMP(statut='f',typ='I', val_min=1),
9390                 PRECISION       =SIMP(statut='f',typ='R',defaut= 0.0 ),
9391                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9392              ),
9393              b_fourier_elas  =BLOC(condition = "(TYPE_RESU == 'FOURIER_ELAS') ",
9394                 NUME_MODE       =SIMP(statut='f',typ='I'),
9395                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
9396                 CHARGE          =SIMP(statut='f',typ=(char_meca),max='**'),
9397              ),
9398              b_fourier_ther  =BLOC(condition = "(TYPE_RESU == 'FOURIER_THER') ",
9399                 NUME_MODE       =SIMP(statut='f',typ='I'),
9400                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
9401              ),
9402              b_mode       =BLOC(condition = "TYPE_RESU == 'MODE_MECA'",
9403                 NUME_MODE       =SIMP(statut='f',typ='I'),
9404                 FREQ            =SIMP(statut='f',typ='R'),
9405              ),
9406              b_dyna_harmo       =BLOC(condition = "TYPE_RESU == 'DYNA_HARMO'",
9407                 regles=(UN_PARMI('FREQ','LIST_FREQ',),),
9408                 FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9409                 LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
9410                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9411                 PRECISION       =SIMP(statut='f',typ='R',defaut=0.0),
9412              ),
9413            ),
9414          ),
9415
9416
9417          # Création par assemblage d'evol_ther :
9418          #-----------------------------------------
9419          b_asse       =BLOC(condition = "OPERATION == 'ASSE'",
9420            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("EVOL_THER",) ),
9421            ASSE         =FACT(statut='o',max='**',
9422              RESULTAT       =SIMP(statut='o',typ=evol_ther),
9423              TRANSLATION    =SIMP(statut='f',typ='R',defaut= 0. ),
9424            ),
9425          ),
9426
9427
9428          b_ecla_pg    =BLOC(condition = "OPERATION == 'ECLA_PG'",
9429
9430            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
9431
9432            ECLA_PG         =FACT(statut='o',
9433              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
9434              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
9435              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster),
9436              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9437              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9438              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9439              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster),
9440              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
9441              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9442              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9443              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
9444              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9445              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9446              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
9447              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9448                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9449              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9450                  PRECISION       =SIMP(statut='o',typ='R',),),
9451            ),
9452          ),
9453
9454
9455          b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'",
9456
9457            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ),
9458            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ),
9459            RESU_INIT       =SIMP(statut='o',typ=evol_noli),
9460            INST_INIT       =SIMP(statut='f',typ='R'),
9461            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
9462            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9463                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9464            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9465                PRECISION       =SIMP(statut='o',typ='R',),),
9466            MAILLAGE_INIT   =SIMP(statut='o',typ=maillage_sdaster,),
9467            RESU_FINAL      =SIMP(statut='o',typ=evol_noli,),
9468            MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
9469            PERM_CHAM       =FACT(statut='o',max='**',
9470               GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
9471               GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
9472               TRAN           =SIMP(statut='o',typ='R',min=3,max=3),
9473               PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
9474            ),
9475          ),
9476
9477          b_prol_rtz   =BLOC(condition = "OPERATION == 'PROL_RTZ'",
9478
9479            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
9480
9481            PROL_RTZ        =FACT(statut='o',
9482               regles=(EXCLUS('INST','LIST_INST'),),
9483               MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
9484               TABLE           =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"),
9485               INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9486               LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9487               b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
9488                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
9489                  b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9490                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9491                  b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9492                      PRECISION       =SIMP(statut='o',typ='R',),),
9493               ),
9494               PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
9495               PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
9496               REPERE          =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
9497               ORIGINE         =SIMP(statut='o',typ='R',min=3,max=3),
9498               AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3),
9499            ),
9500          ),
9501
9502          b_prep_vrc1      =BLOC(condition = "OPERATION == 'PREP_VRC1'",
9503            # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions
9504            # de fonctions du temps et de l'espace (épaisseur)
9505
9506            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ),
9507
9508            PREP_VRC1        =FACT(statut='o',max=1,
9509              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur
9510              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modèle mécanique contenant les coques multicouche
9511              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
9512              INST          =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'),
9513            ),
9514          ),
9515
9516          b_prep_vrc2      =BLOC(condition = "OPERATION == 'PREP_VRC2'",
9517            # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque"
9518            # contenant TEMP/TEMP_INF/TEMP_SUP
9519
9520            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ),
9521
9522            PREP_VRC2        =FACT(statut='o',max=1,
9523              EVOL_THER     =SIMP(statut='o',typ=(evol_ther)),       # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP)
9524              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modèle mécanique contenant les coques multicouche
9525              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
9526            ),
9527          ),
9528 )  ;
9529 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
9530 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9531 # ======================================================================
9532 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
9533 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9534 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9535 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9536 # (AT YOUR OPTION) ANY LATER VERSION.
9537 #
9538 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9539 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9540 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9541 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9542 #
9543 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9544 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9545 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9546 # ======================================================================
9547 # RESPONSABLE COURTOIS M.COURTOIS
9548
9549 def crea_table_prod(TYPE_TABLE, **args):
9550    """Typage du concept résultat
9551    """
9552    if TYPE_TABLE == 'TABLE_FONCTION':
9553       return table_fonction
9554    elif TYPE_TABLE == 'TABLE_CONTENEUR':
9555       return table_container
9556    else:
9557       return table_sdaster
9558
9559 CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod,
9560                 fr="Création d'une table à partir d'une fonction ou de deux listes",
9561                 reentrant='f',
9562                 UIinfo={"groupes":("Tables",)},
9563
9564            regles=(EXCLUS('FONCTION','LISTE','RESU'),),
9565
9566            LISTE=FACT(statut='f',max='**',
9567                  fr="Creation d'une table a partir de listes",
9568                  regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')),
9569                         PARA     =SIMP(statut='o',typ='TXM'),
9570                         TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
9571                                     into=('K8','K16','K24')),
9572                         NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
9573                         LISTE_I  =SIMP(statut='f',typ='I',max='**'),
9574                         LISTE_R  =SIMP(statut='f',typ='R',max='**'),
9575                         LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
9576            ),
9577            FONCTION=FACT(statut='f',
9578                     fr="Creation d'une table a partir d'une fonction",
9579                         FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
9580                         PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
9581            ),
9582            b_fonction = BLOC(condition='FONCTION != None',
9583                regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
9584                        DERIVABLE('FONCTION'),),
9585                SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
9586                                     fr="Liste des paramètres de sensibilité.",
9587                                     ang="List of sensitivity parameters"),
9588            ),
9589            RESU=FACT(statut='f',max=1,
9590                 fr="Creation d'une table a partir d'un resultat ou d'un champ",
9591                 regles=(UN_PARMI('CHAM_GD','RESULTAT'),
9592                         UN_PARMI('TOUT_CMP','NOM_CMP'),
9593                         PRESENT_ABSENT('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
9594                         AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
9595                         ),
9596                         CHAM_GD  =SIMP(statut='f',typ=cham_gd_sdaster),
9597                         RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ),
9598                         b_resultat   =BLOC(condition = "RESULTAT != None",
9599                                regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
9600                                               'MODE','LIST_MODE','FREQ','LIST_FREQ'),),
9601                                NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
9602                                TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9603                                NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
9604                                LIST_ORDRE      =SIMP(statut='f',typ=(listis_sdaster) ),
9605                                INST            =SIMP(statut='f',typ='R',max='**'),
9606                                LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
9607                                MODE            =SIMP(statut='f',typ='I',max='**'),
9608                                LIST_MODE       =SIMP(statut='f',typ=(listis_sdaster) ),
9609                                FREQ            =SIMP(statut='f',typ='R',max='**'),
9610                                LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
9611                                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
9612                                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9613                                        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9614                                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9615                                        PRECISION       =SIMP(statut='o',typ='R',),),
9616                             ),
9617                       TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9618                       NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
9619                       TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9620                       GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9621                       GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9622                       MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9623                       NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9624                       ),
9625
9626            TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE",
9627                              into=('TABLE', 'TABLE_FONCTION', 'TABLE_CONTENEUR'),),
9628
9629            TITRE=SIMP(statut='f',typ='TXM',max='**'),
9630 )  ;
9631
9632
9633
9634 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
9635 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9636 # ======================================================================
9637 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
9638 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9639 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9640 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9641 # (AT YOUR OPTION) ANY LATER VERSION.
9642 #
9643 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9644 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9645 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9646 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9647 #
9648 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9649 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9650 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9651 # ======================================================================
9652 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
9653
9654 DEBUG=PROC(nom="DEBUG",op=137,
9655             UIinfo={"groupes":("Utilitaires",)},
9656                fr="Permettre de changer entre 2 commandes quelques variables globales de debug",
9657
9658      SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
9659                            statut='f',typ='TXM',into=('OUI','NON')),
9660      JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
9661                            statut='f',typ='TXM',into=('OUI','NON')),
9662      JEVEUX          =SIMP(fr="force les déchargement sur disque",
9663                            statut='f',typ='TXM',into=('OUI','NON')),
9664      IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
9665                            statut='f',typ='TXM',into=("OUI","NON")),
9666  );
9667 #& MODIF COMMANDE  DATE 03/01/2011   AUTEUR COURTOIS M.COURTOIS 
9668 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9669 # ======================================================================
9670 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9671 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9672 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9673 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9674 # (AT YOUR OPTION) ANY LATER VERSION.
9675 #
9676 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9677 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9678 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9679 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9680 #
9681 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9682 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9683 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9684 # ======================================================================
9685 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
9686 DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
9687             UIinfo={"groupes":("Gestion du travail",)},
9688            fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
9689           sd_prod=ops.DEBUT,
9690
9691          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
9692                            into=("OUI","NON"),defaut="OUI"),
9693          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
9694                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
9695 #         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
9696 #                               typ='TXM',defaut="NON",into=("OUI","NON",) ),
9697          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
9698                                statut='f',min=1,max=2,
9699            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
9700                                  into=('GLOBALE','VOLATILE'),),
9701            TITRE           =SIMP(statut='f',typ='TXM'),
9702            CAS             =SIMP(statut='f',typ='TXM'),
9703            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
9704            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
9705            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
9706          ),
9707
9708          IMPRESSION      =FACT(statut='f',min=1,max=3,
9709            FICHIER         =SIMP(statut='o',typ='TXM'),
9710            UNITE           =SIMP(statut='o',typ='I'),
9711          ),
9712
9713          CATALOGUE       =FACT(statut='f',min=1,max=10,
9714            FICHIER         =SIMP(statut='o',typ='TXM'),
9715            TITRE           =SIMP(statut='f',typ='TXM'),
9716            UNITE           =SIMP(statut='f',typ='I'),
9717          ),
9718
9719          CODE            =FACT(fr="définition d'un nom pour l'ensemble d'une étude",
9720                                statut='f',min=1,max=1,
9721            NOM             =SIMP(statut='o',typ='TXM'),
9722            NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
9723            VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
9724          ),
9725
9726          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
9727            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),),
9728          ),
9729
9730          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
9731                                statut='f',min=1,max=1,
9732            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
9733                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
9734            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
9735                                  statut='f',typ='TXM',into=('OUI','NON')),
9736            JEVEUX          =SIMP(fr="force les déchargement sur disque",
9737                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
9738            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
9739                                  statut='f',typ='TXM',into=('TEST',)),
9740          ),
9741
9742          MESURE_TEMPS     =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes",
9743                                statut='d',min=1,max=1,
9744            NIVE_DETAIL      =SIMP(fr="niveau de détail des impressions",
9745                                  statut='f',typ='I',into=(0,1,2,3),defaut=1),
9746                                  # 0 : rien
9747                                  # 1 : impression en fin de commande des mesures principales
9748                                  # 2 : impression en fin de commande des mesures principales et secondaires
9749                                  # 3 : impression des mesures principales et secondaires pour chaque pas de temps
9750          ),
9751
9752          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
9753            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
9754            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
9755            TAILLE          =SIMP(statut='f',typ='I'),
9756            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
9757            PARTITION       =SIMP(statut='f',typ='R'),
9758            DYNAMIQUE       =SIMP(statut='f',typ='I',defaut=1),
9759          ),
9760
9761          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
9762            regles=(EXCLUS('VALE','POURCENTAGE'),),
9763 #          par défaut VALE fixée à 10. dans le FORTRAN si CODE présent
9764            VALE            =SIMP(statut='f',typ='I',val_min=0,),
9765 #          par défaut 10% dans le FORTRAN
9766            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
9767 #          valeur en secondes de la réserve maximum bornée à 900 secondes
9768            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900),),
9769
9770          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
9771
9772          INFO     = SIMP(statut='f', typ='I', defaut=1, into=(1,2),),
9773 );
9774 #& MODIF COMMANDE  DATE 25/01/2011   AUTEUR NISTOR I.NISTOR 
9775 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9776 # ======================================================================
9777 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9778 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9779 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9780 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9781 # (AT YOUR OPTION) ANY LATER VERSION.
9782 #
9783 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9784 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9785 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9786 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9787 #
9788 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9789 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9790 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9791 # ======================================================================
9792 # RESPONSABLE NISTOR I.NISTOR
9793 DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=mode_meca,
9794                      reentrant='f',
9795                      fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale",
9796             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
9797          regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),),
9798          CLASSIQUE       =FACT(statut='f',
9799            INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
9800            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
9801            NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
9802          ),
9803          RITZ            =FACT(statut='f',max='**',
9804            regles=(UN_PARMI('MODE_MECA','BASE_MODALE','MODE_INTF'),),
9805            MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
9806            NMAX_MODE       =SIMP(statut='f',typ='I',max='**'),
9807            BASE_MODALE     =SIMP(statut='f',typ=mode_meca ),
9808            MODE_INTF       =SIMP(statut='f',typ=(mode_meca,mult_elas), ),
9809          ),
9810          b_ritz          =BLOC(condition = "RITZ != None",
9811            INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
9812            NUME_REF        =SIMP(statut='f',typ=nume_ddl_sdaster ),
9813            ORTHO           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
9814                                fr="Reorthonormalisation de la base de Ritz" ),
9815            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
9816            b_ortho          =BLOC(condition = "ORTHO == 'OUI' ",
9817              MATRICE          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
9818                ),
9819          ),
9820         DIAG_MASS        =FACT(statut='f',max='**',
9821            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
9822            MODE_STAT       =SIMP(statut='o',typ=mode_meca ),
9823          ),
9824         ORTHO_BASE        =FACT(statut='f',max='**',
9825            BASE       =SIMP(statut='o',typ=(mode_meca,mult_elas)),
9826            MATRICE    =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
9827          ),
9828
9829          SOLVEUR         =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
9830          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MULT_FRONT","MUMPS") ),
9831
9832            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
9833              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
9834            ),
9835
9836            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
9837              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
9838            ),
9839            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
9840                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
9841              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
9842              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
9843            ),
9844            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
9845              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
9846              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
9847              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
9848              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
9849              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
9850              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
9851              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
9852              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
9853              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
9854              ),
9855          ),
9856
9857
9858
9859          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9860          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9861 )  ;
9862 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
9863 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9864 # ======================================================================
9865 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
9866 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9867 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9868 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9869 # (AT YOUR OPTION) ANY LATER VERSION.
9870 #
9871 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9872 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9873 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9874 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9875 #
9876 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9877 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9878 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9879 # ======================================================================
9880 # RESPONSABLE MICHEL S.MICHEL
9881
9882 from Macro.defi_cable_bp_ops import defi_cable_bp_ops
9883
9884 # ===========================================================================
9885 #           CATALOGUE DE LA MACRO "DEFI_CABLE_BP"
9886 #           -----------------------------------------
9887 #
9888 # USAGE :
9889 # Entrée :
9890 #  - MODELE
9891 #  - CABLE
9892 #  - CHAM_MATER
9893 #  - CARA_ELEM
9894 #  - GROUP_MA_BETON
9895 #  - DEFI_CABLE
9896 #  - TENSION_INIT
9897 #  - RECUL_ANCRAGE
9898 #  - RELAXATION
9899 #  - CONE
9900 #      RAYON
9901 #      LONGUEUR
9902 #      PRESENT          OUI ou NON deux fois
9903 #  - TITRE
9904 #  - INFO               1 / 2
9905 #
9906 # ===========================================================================
9907
9908 DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont,
9909                    fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton",
9910                    reentrant='n',UIinfo={"groupes":("Modélisation",)},
9911          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
9912          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
9913          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
9914          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
9915          DEFI_CABLE      =FACT(statut='o',max='**',
9916            regles=(UN_PARMI('MAILLE','GROUP_MA'),
9917                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
9918            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
9919            GROUP_MA        =SIMP(statut='f',typ=grma),
9920            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
9921            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
9922          ),
9923          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
9924          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9925          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9926          RELAXATION      =FACT(statut='f',min=0,
9927            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9928          ),
9929          CONE            =FACT(statut='f',
9930            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9931            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9932            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
9933          ),
9934          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
9935          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9936 )  ;
9937 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
9938 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9939 # ======================================================================
9940 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
9941 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9942 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9943 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9944 # (AT YOUR OPTION) ANY LATER VERSION.
9945 #
9946 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9947 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9948 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9949 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9950 #
9951 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9952 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9953 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9954 # ======================================================================
9955 # RESPONSABLE MICHEL S.MICHEL
9956
9957 DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
9958             fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
9959                +" (utilisée par la macro DEFI_CABLE_BP)",
9960             UIinfo={"groupes":("Modélisation",)},
9961          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
9962          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
9963          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
9964          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
9965          DEFI_CABLE      =FACT(statut='o',max='**',
9966            regles=(UN_PARMI('MAILLE','GROUP_MA'),
9967                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
9968            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
9969            GROUP_MA        =SIMP(statut='f',typ=grma),
9970            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
9971            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
9972            GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
9973          ),
9974          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
9975          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9976          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9977          RELAXATION      =FACT(statut='f',min=0,
9978            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9979          ),
9980          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
9981          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9982          CONE            =FACT(statut='f',min=0,
9983            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9984            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),
9985            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
9986          ),
9987 )  ;
9988 #& MODIF COMMANDE  DATE 23/02/2011   AUTEUR LAVERNE J.LAVERNE 
9989 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9990 # ======================================================================
9991 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9992 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9993 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9994 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9995 # (AT YOUR OPTION) ANY LATER VERSION.
9996 #
9997 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9998 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9999 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10000 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10001 #
10002 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10003 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10004 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10005 # ======================================================================
10006 # RESPONSABLE PROIX J.M.PROIX
10007 DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
10008                    fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres",
10009                    reentrant='n',
10010             UIinfo={"groupes":("Modélisation",)},
10011 # on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas
10012                   regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'),
10013                  PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'),
10014                          ),
10015           MONOCRISTAL    =FACT(statut='f', max='**',
10016              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
10017              ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
10018                                 into=('MONO_VISC1', 'MONO_VISC2', 'MONO_VISC3', 'MONO_DD_KR', 'MONO_DD_CFC', 'MONO_DD_CC',),
10019                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
10020              ELAS            =SIMP(statut='f', typ='TXM', max=1,
10021                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
10022              b_non_dd =BLOC(condition="ECOULEMENT=='MONO_VISC1' or ECOULEMENT=='MONO_VISC2' or ECOULEMENT=='MONO_VISC3'",
10023                    ECRO_ISOT       =SIMP(statut='f', typ='TXM', max=1,
10024                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
10025                    ECRO_CINE       =SIMP(statut='f', typ='TXM', max=1,
10026                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
10027                    FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1,
10028                                 into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
10029                                 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'UNIAXIAL','BCC24'),),
10030                                 ),
10031              b_dd_kr =BLOC(condition="ECOULEMENT=='MONO_DD_KR' ",
10032                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
10033                                 into=('BCC24',),defaut=('BCC24',),),
10034                                 ),
10035              b_dd_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_CFC' ",
10036                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
10037                                 into=('OCTAEDRIQUE',),defaut=('OCTAEDRIQUE',),),
10038                                 ),
10039              b_dd_cc =BLOC(condition="ECOULEMENT=='MONO_DD_CC' ",
10040                    FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1,
10041                                 into=('CUBIQUE1',),defaut=('CUBIQUE1',),),
10042                                 ),
10043                                 ),
10044
10045           ROTA_RESEAU =SIMP(statut='f', typ='TXM', max=1,into=('NON','POST','CALC'),defaut='NON',
10046                    fr="rotation de reseau : NON, POST, CALC"),
10047
10048           POLYCRISTAL    =FACT(statut='f', max='**',
10049            regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
10050              MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
10051              FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
10052              ANGL_REP  =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"),
10053              ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler   en degrés"),
10054                                 ),
10055
10056
10057           b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
10058           LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
10059                 fr="Donner le nom de la règle de localisation"),
10060
10061            b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
10062              DL            =SIMP(statut='o',typ='R',max=1),
10063              DA            =SIMP(statut='o',typ='R',max=1),
10064              ),
10065              ),
10066
10067 #####################################################################################
10068           GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster,
10069                    fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"),
10070           MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster,
10071                    fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"),
10072           MULTIFIBRE    = FACT(statut='f',max='**',
10073           GROUP_FIBRE        =SIMP(statut='o', typ='TXM', max='**'),
10074              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1,
10075                                    fr="Donner le nom du materiau pour le groupe de fibres"),
10076              ALGO_1D         =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
10077              DEFORMATION      =SIMP(statut='f',typ='TXM',defaut="PETIT",
10078                                      into=("PETIT","PETIT_REAC","GROT_GDEP")),
10079              RELATION        =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",into=C_RELATION(),
10080                                   fr="Donner le nom de la relation incrementale pour le groupe de fibres",
10081                                   ),
10082            RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
10083                                  into=(
10084 # MECA KIT_DDI
10085                                        "VMIS_ISOT_TRAC",
10086                                        "VMIS_ISOT_LINE",
10087                                        "VMIS_ISOT_CINE",
10088                                        "VMIS_ISOT_PUIS",
10089                                        "GRANGER_FP",
10090                                        "GRANGER_FP_INDT",
10091                                        "GRANGER_FP_V",
10092                                        "BETON_UMLV_FP",
10093                                        "ROUSS_PR",
10094                                        "BETON_DOUBLE_DP",
10095                                        ),),
10096 # on pourrait ajouter TOUT_GROUP_FIBRE
10097
10098                                 ) );
10099
10100 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
10101 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10102 # ======================================================================
10103 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
10104 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10105 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10106 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10107 # (AT YOUR OPTION) ANY LATER VERSION.
10108 #
10109 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10110 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10111 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10112 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10113 #
10114 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10115 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10116 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10117 # ======================================================================
10118 # RESPONSABLE COURTOIS M.COURTOIS
10119 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
10120                     fr="Définir la valeur d'une grandeur invariante",
10121                     reentrant='n',
10122             UIinfo={"groupes":("Fonctions",)},
10123          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
10124          VALE            =SIMP(statut='o',typ='R',),
10125          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
10126 )  ;
10127 #& MODIF COMMANDE  DATE 23/02/2011   AUTEUR MASSIN P.MASSIN 
10128 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10129 # ======================================================================
10130 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
10131 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10132 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10133 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10134 # (AT YOUR OPTION) ANY LATER VERSION.
10135 #
10136 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10137 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10138 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10139 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10140 #
10141 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10142 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10143 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10144 # ======================================================================
10145 # RESPONSABLE ABBAS M.ABBAS
10146 #
10147 DEFI_CONTACT=OPER(nom       = "DEFI_CONTACT",
10148                   op        = 30,
10149                   sd_prod   = char_contact,
10150                   fr        = "Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
10151                   #en        = "Allows the definition of contact surfaces as well as unilateral conditions",
10152                   reentrant = 'n',
10153                   UIinfo    = {"groupes":("Modélisation",)},
10154
10155 # MODELE
10156
10157          MODELE          =SIMP(statut='o',typ=modele_sdaster,),
10158          INFO            =SIMP(statut='f',typ='I',into=(1,2),),
10159
10160 # FORMULATION (UNIQUE PAR OCCURRENCE DE DEFI_CONTACT)
10161
10162          FORMULATION     =SIMP(statut='o',
10163                                position='global',
10164                                typ='TXM',
10165                                fr="Choix d'une formulation de contact ou de liaisons unilatérales",
10166                                defaut="DISCRETE",
10167                                into=("DISCRETE","CONTINUE","XFEM","LIAISON_UNIL",),),
10168
10169 # PARAMETRE GENERAL : FROTTEMENT
10170
10171          FROTTEMENT      =SIMP(statut='f',
10172                                position='global',
10173                                typ='TXM',
10174                                fr="Choix d'un modèle de frottement (uniquement pour les formulations de contact)",
10175                                defaut="SANS",
10176                                into=("COULOMB","SANS",)),
10177
10178 ### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT MAILLE, NE DEPENDENT PAS DE LA ZONE DE CONTACT)
10179
10180          b_contact_mail=BLOC(condition = "((FORMULATION == 'CONTINUE') or (FORMULATION == 'DISCRETE'))",
10181 #          ARRET DU CALCUL POUR LE MODE SANS RESOLUTION DU CONTACT
10182            STOP_INTERP   = SIMP(statut='f',
10183                                 typ='TXM',
10184                                 fr="Arrête le calcul dès qu'une interpénétration est détectée en mode RESOLUTION='NON'",
10185                                 defaut="NON",
10186                                 into=("OUI","NON")),
10187 #          LISSAGE DES NORMALES PAR MOYENNATION AUX NOEUDS
10188            LISSAGE       = SIMP(statut='f',
10189                                 typ='TXM',
10190                                 fr="Lissage des normales par moyennation aux noeuds",
10191                                 defaut="NON",
10192                                 into=("OUI","NON")),
10193 #          VERIFICATION DE L'ORIENTATION ET DE LA COHERENCE DES NORMALES
10194            VERI_NORM       =SIMP(statut='f',
10195                                  typ='TXM',
10196                                  fr="Vérification de l'orientation (sortante) des normales aux surfaces",
10197                                  defaut="OUI",
10198                                  into=("OUI","NON"),),
10199            ),
10200
10201 ### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT, NE DEPENDENT PAS DE LA ZONE DE CONTACT)
10202
10203          b_contact=BLOC(condition = "FORMULATION != 'LIAISON_UNIL' ",
10204
10205 # PARAMETRE GENERAL : BOUCLE DE GEOMETRIE
10206
10207            b_bouc_geom_mail=BLOC(condition = "(FORMULATION == 'DISCRETE' or FORMULATION == 'CONTINUE')",
10208                                  REAC_GEOM =SIMP(statut='f',
10209                                                  typ='TXM',
10210                                                  into=("AUTOMATIQUE","CONTROLE","SANS",),
10211                                                  defaut="AUTOMATIQUE",
10212                                                  ),
10213                                  b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
10214                                    ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10),
10215                                    RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.01),
10216                                    ),
10217                                  b_controle    = BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
10218                                    NB_ITER_GEOM   = SIMP(statut='f',typ='I',defaut = 2),
10219                                    ),
10220                                  ),
10221
10222            b_bouc_geom_xfem=BLOC(condition = "FORMULATION == 'XFEM' ",
10223                                  REAC_GEOM =SIMP(statut='f',
10224                                                  typ='TXM',
10225                                                  into=("AUTOMATIQUE","CONTROLE","SANS",),
10226                                                  defaut="SANS",
10227                                                  ),
10228                                  b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
10229                                    ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10),
10230                                    RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.0001),
10231                                    ),
10232                                  b_controle    = BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
10233                                    NB_ITER_GEOM   = SIMP(statut='f',typ='I',defaut = 2),
10234                                    ),
10235                                  ),
10236
10237
10238 # PARAMETRE GENERAL : BOUCLE DE CONTACT
10239
10240            b_bouc_cont_disc=BLOC(condition = "FORMULATION == 'DISCRETE' ",
10241                                  ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
10242                                  ),
10243
10244            b_bouc_cont_cont=BLOC(condition = "FORMULATION == 'CONTINUE' ",
10245                                  ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI",
10246                                                       into=("MULT","MAXI")),
10247                                  b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'",
10248                                    ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
10249                                    ),
10250                                  b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'",
10251                                    ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30),
10252                                    ),
10253                                  ),
10254
10255            b_bouc_cont_xfem=BLOC(condition = "FORMULATION == 'XFEM' ",
10256                                  ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI",
10257                                                       into=("MULT","MAXI")),
10258                                  b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'",
10259                                                          ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
10260                                    ),
10261                                  b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'",
10262                                                          ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30),
10263                                    ),
10264                                  ),
10265
10266 # PARAMETRE GENERAL : BOUCLE DE FROTTEMENT
10267
10268            b_bouc_frot     = BLOC(condition = "FROTTEMENT=='COULOMB' and ((FORMULATION == 'CONTINUE') or (FORMULATION == 'XFEM')) ",
10269                                   REAC_FROT =SIMP(statut='f',
10270                                                   typ='TXM',
10271                                                   defaut="AUTOMATIQUE",
10272                                                   into=("AUTOMATIQUE","CONTROLE",),
10273                                                   ),
10274                                   b_automatique = BLOC(condition = "REAC_FROT == 'AUTOMATIQUE' ",
10275                                                        ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10),
10276                                                        RESI_FROT      = SIMP(statut='f',typ='R',defaut=0.0001),
10277                                     ),
10278                                   b_controle    = BLOC(condition = "REAC_FROT == 'CONTROLE' ",
10279                                                        NB_ITER_FROT   = SIMP(statut='f',typ='I',defaut = 2),
10280                                     ),
10281                                   ),
10282
10283 # PARAMETREs GENERAUX : METHODES DISCRETES
10284
10285            b_para_discret  = BLOC(condition = "FORMULATION == 'DISCRETE' ",
10286 #                                 ## METHODES DE DUALISATION ##
10287                                   STOP_SINGULIER= SIMP(statut='f',
10288                                                        typ='TXM',
10289                                                        fr="Tient compte de la singularité de la matrice de contact",
10290                                                        defaut="OUI",
10291                                                        into=("OUI","NON"),),
10292                                   NB_RESOL      = SIMP(statut='f',
10293                                                        typ='I',
10294                                   fr="Nombre de résolutions simultanées pour la construction du complément de Schur",
10295                                                        defaut=10,),
10296 #                                 ## GCP ##
10297                                   RESI_ABSO     = SIMP(statut='f',
10298                                                        typ='R',
10299                                   fr="Critère de convergence (niveau d'interpénétration autorisé pour 'GCP')",),
10300                                   REAC_ITER     = SIMP(statut='f',
10301                                                        typ='I',
10302                                                        fr="Fréquence de réinitialisation de la conjugaison ('GCP')",
10303                                                        defaut=3,),
10304                                   ITER_GCP_MAXI = SIMP(statut='f',
10305                                                        typ='I',
10306                                                        fr="Nombre d'itérations maximal ('GCP')",
10307                                                        defaut=0,),
10308                                   PRE_COND      = SIMP(statut='f',
10309                                                        typ='TXM',
10310                                                        fr="Choix d'un préconditionneur (accélère la convergence de 'GCP')",
10311                                                        defaut="SANS",
10312                                                        into=("DIRICHLET","SANS"),),
10313                                   ITER_PRE_MAXI = SIMP(statut='f',
10314                                                        typ='I',
10315                                                        fr="Nombre d'itérations maximal pour le préconditionneur ('GCP')",
10316                                                        defaut=0,),
10317                                   COEF_RESI     = SIMP(statut='f',
10318                                                        typ='R',
10319                                                        fr="Critère de convergence du préconditionneur (COEF_RESI*RESI_ABSO)",
10320                                                        defaut = 1.,),
10321                                   RECH_LINEAIRE = SIMP(statut='f',
10322                                                        typ='TXM',
10323                                   fr="Autorisation de sortie du domaine admissible lors de la recherche linéaire",
10324                                                        defaut="ADMISSIBLE",
10325                                                        into=("ADMISSIBLE","NON_ADMISSIBLE"),),
10326                                   ),
10327            ), #fin bloc b_contact
10328
10329 ## AFFECTATIONS (ZONES PAR ZONES)
10330
10331 # AFFECTATION - CAS LIAISON_UNILATERALE
10332
10333          b_affe_unil     = BLOC(condition = "FORMULATION == 'LIAISON_UNIL'",
10334                                 ZONE=FACT(statut='o',
10335                                           max='**',
10336 # -- Liaison unilatérale
10337                                           regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
10338                                           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
10339                                           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10340                                           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
10341                                           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
10342 #
10343                                           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
10344                                           COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
10345                                           COEF_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
10346 # -- Incompatibilité avec CL
10347                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
10348                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
10349
10350
10351                                           ),
10352                                 ), #fin bloc b_affe_unil
10353
10354 # AFFECTATION - CAS DISCRET
10355
10356          b_affe_discret  = BLOC(condition = "FORMULATION == 'DISCRETE'",
10357                                 ZONE=FACT(statut='o',
10358                                           max='**',
10359 # -- Appariement
10360                                           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
10361                                                                 into=("NODAL","MAIT_ESCL"),),
10362 #
10363                                           regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),
10364                                                   UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),),
10365                                           GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
10366                                           MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10367                                           GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
10368                                           MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10369 #
10370                                           NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
10371                                                                 into=("MAIT","MAIT_ESCL","ESCL"),),
10372 #
10373                                           VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
10374                                                                 into=("AUTO","FIXE","VECT_Y")),
10375
10376                                           b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'",
10377                                             MAIT_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
10378                                             ),
10379
10380                                           b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'",
10381                                             MAIT_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
10382                                             ),
10383 #
10384                                           VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
10385                                                                 into=("AUTO","FIXE","VECT_Y")),
10386
10387                                           b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'",
10388                                             ESCL_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
10389                                             ),
10390
10391                                           b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'",
10392                                             ESCL_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
10393                                             ),
10394 #
10395                                           TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
10396                                                            into  =("PROCHE","FIXE")),
10397
10398                                           b_appa_fixe     =BLOC(condition = "TYPE_APPA == 'FIXE'",
10399                                             DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
10400                                             ),
10401 #
10402                                           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
10403                                           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
10404                                           b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
10405                                             CARA_ELEM     =SIMP(statut='o',typ=(cara_elem) ),
10406                                             ),
10407
10408                                           DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10409                                           DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10410 #
10411                                           TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0),
10412                                           TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
10413 # -- Incompatibilité avec CL
10414                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
10415                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
10416                                           SANS_MAILLE     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10417                                           SANS_GROUP_MA   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
10418 # -- Mode sans calcul
10419                                           RESOLUTION      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
10420                                           b_verif=BLOC(condition = "RESOLUTION == 'NON' ",
10421                                             TOLE_INTERP   = SIMP(statut='f',typ='R',defaut = 0.),
10422                                             ),
10423 # -- Résolution
10424                                           ALGO_CONT       =SIMP(statut='o',typ='TXM',defaut="CONTRAINTE",
10425                                                                 into=("CONTRAINTE","LAGRANGIEN","PENALISATION","GCP"),),
10426
10427                                           b_active=BLOC(condition = "ALGO_CONT == 'CONTRAINTE' ",
10428                                                         fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
10429                                                         GLISSIERE=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
10430                                                         b_glissiere=BLOC(condition = "GLISSIERE == 'OUI' ",
10431                                                                          ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
10432                                                                         ),
10433                                                         ),
10434 #
10435                                           b_penal_contact=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
10436                                                                fr="Paramètres de la méthode pénalisée (contact)",
10437                                                                E_N=SIMP(statut='o',typ='R'),
10438                                                                ),
10439 #
10440                                           b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' ",
10441                                                             fr="Paramètres du frottement de Coulomb",
10442                                                             COULOMB       =SIMP(statut='o',typ='R',),
10443                                                             COEF_MATR_FROT=SIMP(statut='f',typ='R',defaut=0.E+0),
10444                                                             ALGO_FROT     =SIMP(statut='o',typ='TXM',defaut="PENALISATION",
10445                                                                                 into=("PENALISATION","LAGRANGIEN"),),
10446 #
10447                                                             b_penal_frot=BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
10448                                                                               fr="Paramètres de la méthode pénalisée (frottement)",
10449                                                                               E_T=SIMP(statut='o',typ='R'),
10450                                                                               ),
10451                                                            ),
10452                                           ), #fin mot-clé facteur ZONE
10453                                 ), #fin bloc b_affe_discret
10454
10455 # AFFECTATION - CAS CONTINUE
10456
10457          b_affe_continue = BLOC(condition = "FORMULATION == 'CONTINUE'",
10458                                 ZONE=FACT(statut='o',
10459                                           max='**',
10460 # -- Appariement
10461                                           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
10462                                                                 into=("MAIT_ESCL",)),
10463 #
10464                                           regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),
10465                                                   UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),),
10466                                           GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
10467                                           MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10468                                           GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
10469                                           MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10470 #
10471                                           NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
10472                                                                 into=("MAIT","MAIT_ESCL","ESCL"),),
10473 #
10474                                           VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
10475                                                                 into=("AUTO","FIXE","VECT_Y")),
10476
10477                                           b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'",
10478                                             MAIT_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
10479                                             ),
10480
10481                                           b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'",
10482                                             MAIT_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
10483                                             ),
10484 #
10485                                           VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
10486                                                                 into=("AUTO","FIXE","VECT_Y")),
10487
10488                                           b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'",
10489                                             ESCL_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
10490                                             ),
10491
10492                                           b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'",
10493                                             ESCL_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
10494                                             ),
10495 #
10496                                           TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
10497                                                            into  =("PROCHE","FIXE")),
10498
10499                                           b_appa_fixe=BLOC(condition = "TYPE_APPA == 'FIXE'",
10500                                             DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
10501                                             ),
10502 #
10503                                           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
10504                                           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
10505                                           b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
10506                                             CARA_ELEM     =SIMP(statut='o',typ=(cara_elem) ),
10507                                             ),
10508
10509                                           DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10510                                           DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10511 #
10512                                           TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0),
10513                                           TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
10514 # -- Incompatibilité avec CL
10515                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
10516                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
10517                                           SANS_MAILLE     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
10518                                           SANS_GROUP_MA   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
10519 #
10520                                           FOND_FISSURE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
10521                                           b_fond_fissure  =BLOC(condition = "FOND_FISSURE == 'OUI' ",
10522                                                                 fr="Traitement en fond de fissure",
10523                                           regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
10524                                           NOEUD_FOND    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
10525                                           GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
10526                                           MAILLE_FOND   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
10527                                           GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
10528                                                                 ),
10529 #
10530                                           RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
10531                                           b_raccord_surf =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",
10532                                                                fr="Traitement du raccord surfacique",
10533                                                                regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
10534                                           NOEUD_RACC    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
10535                                           GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
10536                                                                ),
10537 #
10538                                           EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
10539 # -- Mode sans calcul
10540                                           RESOLUTION       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
10541                                           b_verif=BLOC(condition = "RESOLUTION == 'NON' ",
10542                                                        TOLE_INTERP   = SIMP(statut='f',typ='R',defaut = 0.),
10543                                                        ),
10544 # -- Fonctionnalités spécifiques 'CONTINUE'
10545                                           INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",
10546                                                                  into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
10547                                                                                        "NCOTES" ,"NCOTES1" ,"NCOTES2"),),
10548 #
10549                                           CONTACT_INIT    =SIMP(statut='f',typ='TXM',defaut="NON",
10550                                                                 into=("OUI","INTERPENETRE","NON"),),
10551 #
10552                                           GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
10553 #
10554                                           ALGO_CONT       =SIMP(statut='f',typ='TXM',defaut="STANDARD",
10555                                                                 into=("STANDARD","AVANCE","PENALISATION"),),
10556
10557                                           b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD' ",
10558                                                           fr="Paramètres de la formulation Lagrangienne",
10559                                                           COEF_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
10560                                                           ),
10561                                           b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ",
10562                                                           fr="Paramètres du Lagrangien augmenté",
10563                                                           COEF_REGU_CONT=SIMP(statut='f',typ='R',defaut=100.E+0),
10564                                                           COEF_STAB_CONT=SIMP(statut='f',typ='R',defaut=100.E+0),
10565                                                           COEF_PENA_CONT=SIMP(statut='f',typ='R',defaut=100.E+0),
10566                                                           ),
10567                                           b_cont_pena=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
10568                                                             fr="Paramètres de la méthode pénalisée",
10569                                                             COEF_PENA_CONT  =SIMP(statut='o',typ='R'),
10570                                                             ),
10571 #
10572                                           COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
10573                                           b_compliance=BLOC(condition = "COMPLIANCE == 'OUI' ",
10574                                                             fr="Paramètres de la compliance",
10575                                                             ASPERITE = SIMP(statut='o',typ='R',),
10576                                                             E_N      = SIMP(statut='o',typ='R',),
10577                                                             E_V      = SIMP(statut='f',typ='R',defaut=0.E+0),
10578                                             ),
10579 #
10580                                           b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' ",
10581                                                             fr="Paramètres du frottement de Coulomb",
10582                                                             COULOMB    = SIMP(statut='o',typ='R',),
10583                                                             SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0),
10584 #
10585                                           regles=(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),),
10586                                           SANS_NOEUD_FR    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
10587                                           SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
10588                                                             b_sans_group_no_frot=BLOC(condition = " SANS_GROUP_NO_FR != None or \
10589                                                                                                     SANS_NOEUD_FR != None ",
10590                                                             fr="Direction de frottement à exclure (uniquement dans le cas 3D)",
10591                                                             DIRE_EXCL_FROT=SIMP(statut='f',typ='R',min=3,max=3),
10592                                                             ),
10593
10594                                             ALGO_FROT       =SIMP(statut='f',typ='TXM',defaut="STANDARD",
10595                                                                   into=("STANDARD","AVANCE","PENALISATION"),),
10596                                             b_frot_std      =BLOC(condition = "ALGO_FROT == 'STANDARD' ",
10597                                                                   fr="Paramètres de la formulation Lagrangienne",
10598                                                                   COEF_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10599                                                                   ),
10600                                             b_frot_avc      =BLOC(condition = "ALGO_FROT == 'AVANCE' ",
10601                                                                   fr="Paramètres du Lagrangien augmenté",
10602                                                                   COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10603                                                                   COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10604                                                                   COEF_PENA_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10605                                                                   ),
10606                                             b_frot_pena     =BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
10607                                                                   fr="Paramètres de la méthode pénalisée",
10608                                                                   COEF_PENA_FROT  =SIMP(statut='o',typ='R'),
10609                                                                   ),
10610 #
10611                                             USURE           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),),
10612                                             b_usure         =BLOC(condition = "USURE == 'ARCHARD' ",
10613                                                                   fr="Parametres de la loi d'usure d'Archard",
10614                                                                   K =SIMP(statut='o',typ='R',),
10615                                                                   H =SIMP(statut='o',typ='R',val_min=1E-8),
10616                                                                   ),
10617
10618                                             ), #fin bloc b_frottement
10619                                           ), #fin mot-clé facteur ZONE
10620                                 ), #fin bloc b_affe_continue
10621
10622
10623 # AFFECTATION - CAS XFEM
10624
10625            b_affe_xfem =BLOC(condition = "FORMULATION == 'XFEM'",
10626                              ZONE=FACT(statut='o',
10627                                        max='**',
10628 # -- Fissure
10629                                        FISS_MAIT      = SIMP(statut='o',typ=fiss_xfem,max=1),
10630                                        TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
10631
10632 # -- Fonctionnalités spécifiques 'XFEM'
10633                                        INTEGRATION    = SIMP(statut='f',
10634                                                              typ='TXM',
10635                                                              defaut="FPG4",
10636                                                              into=("GAUSS","FPG2","FPG3","FPG4","FPG6","FPG7",
10637                                                                    "NOEUD","SIMPSON","SIMPSON1","NCOTES","NCOTES1","NCOTES2"),),
10638
10639
10640                                        RELATION       = SIMP(statut='f',typ='TXM',defaut="NON",
10641                                                              into=("CZM_EXP_REG","CZM_LIN_REG","NON"),),
10642
10643                                        ALGO_LAGR      = SIMP(statut='f',typ='TXM',defaut="VERSION1",
10644                                                              into=("NON","VERSION1","VERSION2"),),
10645                                        COEF_ECHELLE   = SIMP(statut='f',typ='R',defaut=1.E+6),
10646
10647                                        ALGO_CONT      = SIMP(statut='f',typ='TXM',defaut="STANDARD",
10648                                                                   into=("STANDARD","AVANCE","PENALISATION","CZM"),),
10649                                                                   
10650                                        b_cont_nczm =BLOC(condition = "ALGO_CONT!='CZM'",
10651                                                 CONTACT_INIT   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
10652                                                 GLISSIERE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
10653                                                 ),
10654
10655                                        b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD'",
10656                                                 fr="Parametres de la formulation Lagrangienne",
10657                                                 COEF_CONT    =SIMP(statut='f',typ='R',defaut=100.E+0),
10658                                                 ),
10659              
10660                                        b_cont_avc=BLOC(condition = "ALGO_CONT == 'AVANCE' ",
10661                                                  fr="Parametres du Lagrangien augmenté",
10662                                                  COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
10663                                                  COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=0.E+0),
10664                                                  COEF_PENA_CONT =SIMP(statut='f',typ='R',defaut=0.E+0),
10665                                                  ),
10666
10667                                        b_cont_pen=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
10668                                                  fr="Paramètre de la méthode pénalisée",
10669                                                  COEF_PENA_CONT =SIMP(statut='o',typ='R'),
10670                                                  ),
10671
10672                                        b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' and  ALGO_CONT != 'CZM' ",
10673                                                  fr="Paramètres du frottement",
10674                                                  COULOMB      =SIMP(statut='o',typ='R',),
10675                                                  SEUIL_INIT   =SIMP(statut='f',typ='R',defaut=0.E+0),
10676                                                  ALGO_FROT    =SIMP(statut='f',typ='TXM',defaut="STANDARD",
10677                                                                             into=("STANDARD","AVANCE","PENALISATION"),),
10678
10679                                                  b_frot_std=BLOC(condition = "ALGO_FROT == 'STANDARD' ",
10680                                                                   fr="Parametres de la formulation Lagrangienne",
10681                                                                   COEF_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10682                                                                   ),
10683                                                  b_frot_avc=BLOC(condition = "ALGO_FROT == 'AVANCE' ",
10684                                                                   fr="Parametres du Lagrangien augmenté",
10685                                                                   COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
10686                                                                   COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
10687                                                                   COEF_PENA_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
10688                                                                   ),
10689                                                  b_frot_pen=BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
10690                                                                   fr="Paramètre de la méthode pénalisée",
10691                                                                   COEF_PENA_FROT  =SIMP(statut='o',typ='R'),
10692                                                                   ),
10693                                                         ), #fin bloc b_frottement
10694                                        ), #fin mot-clé facteur ZONE
10695                              ), #fin bloc b_affe_xfem
10696
10697                   ) #fin OPER
10698 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
10699 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10700 # ======================================================================
10701 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
10702 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10703 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10704 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10705 # (AT YOUR OPTION) ANY LATER VERSION.
10706 #
10707 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10708 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10709 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10710 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10711 #
10712 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10713 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10714 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10715 # ======================================================================
10716 # RESPONSABLE DESROCHES X.DESROCHES
10717 DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n',
10718             UIinfo={"groupes":("Modélisation",)},
10719                     fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir"
10720                         +" des caractéristiques de chaque couche",
10721          COUCHE          =FACT(statut='o',max='**',
10722            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
10723            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
10724            ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.E+0,
10725                                  val_min=-90.E+0,val_max=90.E+0   ),
10726          ),
10727          IMPRESSION      =FACT(statut='f',
10728            UNITE           =SIMP(statut='f',typ='I',defaut=8),
10729          ),
10730 )  ;
10731 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
10732 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10733 # ======================================================================
10734 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
10735 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10736 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10737 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10738 # (AT YOUR OPTION) ANY LATER VERSION.
10739 #
10740 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10741 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10742 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10743 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10744 #
10745 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10746 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10747 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10748 # ======================================================================
10749 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
10750 def DEFIC_prod(self,ACTION,UNITE,**args):
10751   if ACTION == "ASSOCIER" or ACTION == "RESERVER":
10752     if UNITE != None :
10753       return
10754     else :
10755       return entier
10756   elif ACTION == "LIBERER"  :
10757     return
10758   else :
10759     raise AsException("ACTION non prevue : %s" % ACTION)
10760
10761 DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n',
10762                   UIinfo={"groupes":("Gestion du travail",)},
10763                   fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
10764
10765             ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
10766
10767             b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
10768                                 fr="Paramètres pour l'ouverture du fichier",
10769                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
10770                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
10771                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
10772                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
10773
10774                b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
10775                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
10776                ),
10777                b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
10778                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
10779                ),
10780             ),
10781
10782             b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
10783                                 fr="Paramètres pour la réservation de l'unité du fichier",
10784                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
10785                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
10786                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
10787                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
10788                ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
10789             ),
10790
10791             b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
10792                                fr="Paramètres pour la fermeture du fichier",
10793                                regles=(UN_PARMI('FICHIER','UNITE'),),
10794                   UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
10795                   FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
10796            ),
10797
10798            INFO          =SIMP(statut='f',typ='I',into=(1,2) ),
10799            )
10800 #& MODIF COMMANDE  DATE 08/03/2011   AUTEUR MASSIN P.MASSIN 
10801 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10802 # ======================================================================
10803 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
10804 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10805 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10806 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10807 # (AT YOUR OPTION) ANY LATER VERSION.
10808 #
10809 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10810 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10811 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10812 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10813 #
10814 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10815 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10816 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10817 # ======================================================================
10818 # RESPONSABLE GENIAUT S.GENIAUT
10819
10820 DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
10821             UIinfo={"groupes":("Modélisation",)},
10822                fr="Définition des caratéristiques d'une fissure ou d'une interface avec X-FEM",
10823
10824 # ------------------------------------------------------------------------------------------------------------------------
10825 #                       modele sous-jacent
10826 # ------------------------------------------------------------------------------------------------------------------------
10827
10828     MODELE                =SIMP(statut='o',typ=modele_sdaster),
10829     MODELE_GRILLE         =SIMP(statut='f',typ=modele_sdaster,max=1,position='global'),
10830
10831 # ------------------------------------------------------------------------------------------------------------------------
10832 #                       fissure/interface
10833 # ------------------------------------------------------------------------------------------------------------------------
10834
10835       TYPE_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("FISSURE","INTERFACE",) ,defaut="FISSURE",position='global'),
10836
10837 # ------------------------------------------------------------------------------------------------------------------------
10838 #                       caracteristiques de la fissure/interface
10839 # ------------------------------------------------------------------------------------------------------------------------
10840
10841     DEFI_FISS             =FACT(statut='o',max=1,
10842
10843       regles              =UN_PARMI('GROUP_MA_FISS','FONC_LN','FORM_FISS','CHAM_NO_LSN'),
10844
10845 # impossible de faire des regles dans des blocs condition, dommage
10846 #       b_fissure           =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",fr="Regles pour les fissures",
10847 #                 regles    =(ENSEMBLE('FONC_LN','FONC_LT'),
10848 #                             ENSEMBLE('CHAM_NO_LSN','CHAM_NO_LST'),
10849 #                             ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
10850 #                                ),
10851
10852 #       b_interface           =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ",fr="Regles pour les interfaces",
10853 #                 regles    =(PRESENT_ABSENT('FONC_LN','FONC_LT'),
10854 #                             PRESENT_ABSENT('CHAM_NO_LSN','CHAM_NO_LST'),
10855 #                             PRESENT_ABSENT('GROUP_MA_FISS','GROUP_MA_FOND')),
10856 #                                ),
10857
10858       FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
10859       FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
10860       CHAM_NO_LSN         =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1),
10861       CHAM_NO_LST         =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1),
10862       GROUP_MA_FISS       =SIMP(statut='f',typ=grma,min=1,max=1),
10863       GROUP_MA_FOND       =SIMP(statut='f',typ=grma,min=1,max=1),
10864       FORM_FISS   =SIMP(statut='f',typ='TXM',into=("ELLIPSE","RECTANGLE","CYLINDRE","DEMI_PLAN",
10865                                                    "SEGMENT","DEMI_DROITE","INCLUSION","DROITE") ),
10866       b_ellipse           =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure elliptique",
10867            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
10868            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
10869            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
10870            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
10871            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
10872            COTE_FISS      =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ),    ),
10873       b_rectangle         =BLOC(condition = "FORM_FISS == 'RECTANGLE' ",fr="Paramètres de la fissure rectangulaire",
10874            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
10875            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
10876            RAYON_CONGE    =SIMP(statut='f',typ='R',val_min=0.,defaut=0.),
10877            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
10878            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
10879            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
10880            COTE_FISS      =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ),    ),
10881       b_cylindre          =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique",
10882            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
10883            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
10884            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
10885            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
10886            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),),
10887       b_demiplan          =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit",
10888            PFON           =SIMP(statut='o',typ='R',min=3,max=3),
10889            NORMALE        =SIMP(statut='o',typ='R',min=3,max=3),
10890            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
10891       b_segment           =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment",
10892            PFON_ORIG      =SIMP(statut='o',typ='R',min=3,max=3),
10893            PFON_EXTR      =SIMP(statut='o',typ='R',min=3,max=3),),
10894       b_demidroite         =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite",
10895            PFON           =SIMP(statut='o',typ='R',min=3,max=3),
10896            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
10897       b_droite            =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)",
10898            POINT          =SIMP(statut='o',typ='R',min=3,max=3),
10899            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
10900       b_inclusion         =BLOC(condition = "FORM_FISS == 'INCLUSION' ",fr="Paramètres de l'interface 2D (inclusion)",
10901            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
10902            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
10903            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
10904            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
10905            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),),
10906                             ),
10907
10908 # ------------------------------------------------------------------------------------------------------------------------
10909 #                       grille (pour Homard)
10910 # ------------------------------------------------------------------------------------------------------------------------
10911
10912     DEFI_FISS_GRILLE       =FACT(statut='f',max=1,
10913
10914       b_fissure            =BLOC(condition="MODELE_GRILLE == None",
10915            FISSURE         =SIMP(statut='f',typ=fiss_xfem,max=1),
10916                                 ),
10917
10918       b_levelset_grille    =BLOC(condition="MODELE_GRILLE != None" ,
10919            CHAM_NO_LSN_GRILLE  =SIMP(statut='o',typ=cham_no_sdaster,max=1),
10920            CHAM_NO_LST_GRILLE  =SIMP(statut='o',typ=cham_no_sdaster,max=1),
10921            CHAM_NO_GRLSN_GRILLE=SIMP(statut='o',typ=cham_no_sdaster,max=1),
10922            CHAM_NO_GRLST_GRILLE=SIMP(statut='o',typ=cham_no_sdaster,max=1),
10923                                  ),
10924                                  ),
10925
10926                            
10927
10928 # ------------------------------------------------------------------------------------------------------------------------
10929 #                       partie du maillage potentiellement enrichie
10930 # ------------------------------------------------------------------------------------------------------------------------
10931
10932     GROUP_MA_ENRI         =SIMP(statut='f',typ=grma,max=01),
10933
10934 # ------------------------------------------------------------------------------------------------------------------------
10935 #                       types d'enrichissement 
10936 # ------------------------------------------------------------------------------------------------------------------------
10937
10938     b_enri_inte           =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ",
10939
10940       CHAM_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("DEPL","SIGM"),defaut="DEPL" ),
10941
10942                           ),
10943
10944
10945     b_enri_fiss           =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",
10946
10947       CHAM_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("DEPL",),defaut="DEPL" ),
10948       TYPE_ENRI_FOND      =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ),
10949
10950         b_enri_geom       =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique",
10951            RAYON_ENRI     =SIMP(statut='f',typ='R',val_min=0.E+0),
10952
10953           b_enri_couches  =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches",
10954            NB_COUCHES     =SIMP(statut='f',typ='I',defaut=4,val_min=1),
10955
10956                                ),
10957                              ),                        
10958                           ),
10959
10960 # ------------------------------------------------------------------------------------------------------------------------
10961 #                       orientation du fond de fissure
10962 # ------------------------------------------------------------------------------------------------------------------------
10963
10964     b_orie_fond           =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",
10965
10966     ORIE_FOND             =FACT(statut='f',max=1,
10967       PFON_INI            =SIMP(statut='o',typ='R',max=3),
10968       VECT_ORIE           =SIMP(statut='o',typ='R',max=3),
10969       POINT_ORIG          =SIMP(statut='o',typ='R',max=3),
10970                                ),
10971
10972                              ),
10973
10974 # ------------------------------------------------------------------------------------------------------------------------
10975 #                       branchement
10976 # ------------------------------------------------------------------------------------------------------------------------
10977
10978     b_jonction            =BLOC(condition = "MODELE_GRILLE == None ",
10979         JONCTION              =FACT(statut='f',max=1,
10980           FISSURE             =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
10981           POINT               =SIMP(statut='o',typ='R',max=3,),
10982                                    ),
10983                                ),
10984 # ------------------------------------------------------------------------------------------------------------------------
10985 #                       info
10986 # ------------------------------------------------------------------------------------------------------------------------
10987
10988     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
10989
10990 )  ;
10991 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
10992 #            CONFIGURATION MANAGEMENT OF EDF VERSION
10993 # ======================================================================
10994 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
10995 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10996 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10997 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10998 # (AT YOUR OPTION) ANY LATER VERSION.
10999 #
11000 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11001 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11002 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11003 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11004 #
11005 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11006 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11007 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11008 # ======================================================================
11009 # RESPONSABLE ADOBES A.ADOBES
11010 DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
11011                     reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
11012             UIinfo={"groupes":("Modélisation",)},
11013          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
11014          FAISCEAU_TRANS  =FACT(statut='f',max='**',
11015            regles=(  ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),),
11016            COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
11017            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
11018            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11019            PROF_RHO_F_INT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11020            PROF_RHO_F_EXT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11021            NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
11022            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
11023            TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
11024            TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
11025            UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
11026            UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),
11027            PAS             =SIMP(statut='f',typ='R' ),
11028            CSTE_CONNORS    =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00),
11029            NB_CONNORS      =SIMP(statut='f',typ='I',val_min=2,),
11030            RHO_TUBE        =SIMP(statut='f',typ='R' ),
11031          ),
11032          GRAPPE          =FACT(statut='f',
11033            regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
11034                    PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
11035 #  peut on créer un bloc a partir de la valeur de couplage
11036            COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
11037            GRAPPE_2        =SIMP(statut='f',typ='TXM',
11038                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
11039            NOEUD           =SIMP(statut='f',typ=no),
11040            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
11041            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
11042            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
11043            RHO_FLUI        =SIMP(statut='f',typ='R' ),
11044            UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
11045            UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),
11046          ),
11047          FAISCEAU_AXIAL  =FACT(statut='f',max='**',
11048            regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
11049                    UN_PARMI('CARA_ELEM','RAYON_TUBE'),
11050                    ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
11051                    PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
11052                    ENSEMBLE('CARA_PAROI','VALE_PAROI'),
11053                    ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
11054                             'COOR_GRILLE','TYPE_GRILLE', ),),
11055 #  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
11056            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11057            TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
11058            VECT_X          =SIMP(statut='f',typ='R',max=3),
11059            PROF_RHO_FLUI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11060            PROF_VISC_CINE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11061            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
11062            RAYON_TUBE      =SIMP(statut='f',typ='R' ),
11063            COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
11064            PESANTEUR       =SIMP(statut='f',typ='R',min=4,max=4),
11065            RUGO_TUBE       =SIMP(statut='f',typ='R' ),
11066            CARA_PAROI      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5,
11067                                  into=("YC","ZC","R","HY","HZ") ),
11068            VALE_PAROI      =SIMP(statut='f',typ='R',max=5),
11069            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
11070            LONG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
11071            LARG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
11072            EPAI_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
11073            RUGO_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
11074            COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
11075            COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
11076            COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
11077            TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
11078          ),
11079          COQUE_COAX      =FACT(statut='f',
11080            MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11081            GROUP_MA_INT    =SIMP(statut='o',typ=grma),
11082            GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
11083            VECT_X          =SIMP(statut='o',typ='R',max='**'),
11084            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
11085            MATER_INT       =SIMP(statut='o',typ=mater_sdaster ),
11086            MATER_EXT       =SIMP(statut='o',typ=mater_sdaster ),
11087            RHO_FLUI        =SIMP(statut='o',typ='R' ),
11088            VISC_CINE       =SIMP(statut='o',typ='R' ),
11089            RUGOSITE        =SIMP(statut='o',typ='R' ),
11090            PDC_MOY_1       =SIMP(statut='o',typ='R' ),
11091            PDC_DYN_1       =SIMP(statut='o',typ='R' ),
11092            PDC_MOY_2       =SIMP(statut='o',typ='R' ),
11093            PDC_DYN_2       =SIMP(statut='o',typ='R' ),
11094          ),
11095          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11096 )  ;
11097 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11098 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11099 # ======================================================================
11100 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11101 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11102 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11103 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11104 # (AT YOUR OPTION) ANY LATER VERSION.
11105 #
11106 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11107 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11108 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11109 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11110 #
11111 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11112 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11113 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11114 # ======================================================================
11115 # RESPONSABLE PEYRARD C.PEYRARD
11116
11117 from Macro.defi_fonc_elec_ops import defi_fonc_elec_ops
11118
11119 DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC",op=defi_fonc_elec_ops,sd_prod=fonction_sdaster,reentrant='n',
11120             UIinfo={"groupes":("Outils-métier",)},
11121                     fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE",
11122       regles=(UN_PARMI('COUR_PRIN','COUR'),
11123               EXCLUS('COUR','COUR_SECO'), ),
11124          FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
11125          SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
11126          COUR            =FACT(statut='f',max='**',
11127          fr="Définition du courant de court-circuit",
11128            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
11129                    UN_PARMI('PHI_CC_2','INTC_CC_2'),),
11130            INTE_CC_1       =SIMP(statut='o',typ='R'),
11131            TAU_CC_1        =SIMP(statut='o',typ='R'),
11132            PHI_CC_1        =SIMP(statut='f',typ='R'),
11133            INTC_CC_1       =SIMP(statut='f',typ='R'),
11134            INTE_CC_2       =SIMP(statut='o',typ='R'),
11135            TAU_CC_2        =SIMP(statut='o',typ='R'),
11136            PHI_CC_2        =SIMP(statut='f',typ='R'),
11137            INTC_CC_2       =SIMP(statut='f',typ='R'),
11138            INST_CC_INIT    =SIMP(statut='o',typ='R'),
11139            INST_CC_FIN     =SIMP(statut='o',typ='R'),
11140          ),
11141          COUR_PRIN       =FACT(statut='f',
11142          fr="Définition du courant de court-circuit avec réenclenchement",
11143            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
11144            INTE_CC_1       =SIMP(statut='o',typ='R'),
11145            TAU_CC_1        =SIMP(statut='o',typ='R'),
11146            PHI_CC_1        =SIMP(statut='f',typ='R'),
11147            INTC_CC_1       =SIMP(statut='f',typ='R'),
11148            INTE_RENC_1     =SIMP(statut='f',typ='R'),
11149            TAU_RENC_1      =SIMP(statut='f',typ='R'),
11150            PHI_RENC_1      =SIMP(statut='f',typ='R'),
11151            INST_CC_INIT    =SIMP(statut='o',typ='R'),
11152            INST_CC_FIN     =SIMP(statut='o',typ='R'),
11153            INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
11154            INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
11155          ),
11156          COUR_SECO       =FACT(statut='f',max='**',
11157          fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
11158            regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
11159            INTE_CC_2       =SIMP(statut='o',typ='R'),
11160            TAU_CC_2        =SIMP(statut='o',typ='R'),
11161            PHI_CC_2        =SIMP(statut='f',typ='R'),
11162            INTC_CC_2       =SIMP(statut='f',typ='R'),
11163            INTE_RENC_2     =SIMP(statut='f',typ='R'),
11164            TAU_RENC_2      =SIMP(statut='f',typ='R'),
11165            PHI_RENC_2      =SIMP(statut='f',typ='R'),
11166            DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
11167          ),
11168          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
11169 )
11170 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11171 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11172 # ======================================================================
11173 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11174 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11175 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11176 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11177 # (AT YOUR OPTION) ANY LATER VERSION.
11178 #
11179 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11180 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11181 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11182 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11183 #
11184 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11185 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11186 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11187 # ======================================================================
11188 # RESPONSABLE ADOBES A.ADOBES
11189 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
11190                     reentrant='n',
11191             fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre",
11192             UIinfo={"groupes":("Modélisation","Fonctions",)},
11193          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
11194          NOEUD_INIT      =SIMP(statut='o',typ=no),
11195          NOEUD_FIN       =SIMP(statut='o',typ=no),
11196          VITE            =FACT(statut='o',
11197            VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
11198            PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
11199            NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
11200          ),
11201          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
11202                                into=("NON","LIN","LOG") ),
11203          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",
11204                                into=("CONSTANT","LINEAIRE","EXCLU") ),
11205          PROL_GAUCHE     =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
11206                                into=("CONSTANT","LINEAIRE","EXCLU") ),
11207          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
11208          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11209 )  ;
11210 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11211 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11212 # ======================================================================
11213 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11214 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11215 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11216 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11217 # (AT YOUR OPTION) ANY LATER VERSION.
11218 #
11219 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11220 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11221 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11222 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11223 #
11224 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11225 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11226 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11227 # ======================================================================
11228 # RESPONSABLE COURTOIS M.COURTOIS
11229 def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args):
11230   if VALE       != None  : return fonction_sdaster
11231   if VALE_C     != None  : return fonction_c
11232   if VALE_PARA  != None  : return fonction_sdaster
11233   if ABSCISSE   != None  : return fonction_sdaster
11234   if NOEUD_PARA != None  : return fonction_sdaster
11235   raise AsException("type de concept resultat non prevu")
11236
11237 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
11238                     ,fr="Définit une fonction réelle ou complexe d'une variable réelle",
11239                      reentrant='n',
11240             UIinfo={"groupes":("Fonctions",)},
11241          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA','ABSCISSE'),),
11242          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
11243          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
11244          VALE            =SIMP(statut='f',typ='R',min=2,max='**',
11245                                fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"),
11246          ABSCISSE        =SIMP(statut='f',typ='R',min=2,max='**',
11247                                fr ="Liste d abscisses d une fonction réelle"),
11248          VALE_C          =SIMP(statut='f',typ='R',min=2,max='**',
11249                                fr ="Fonction complexe définie par une liste de couples"),
11250          VALE_PARA       =SIMP(statut='f',typ=listr8_sdaster,
11251                                fr ="Fonction réelle définie par deux concepts de type listr8" ),
11252          b_vale_para     =BLOC(condition = "VALE_PARA != None",
11253            VALE_FONC       =SIMP(statut='o',typ=listr8_sdaster ),
11254          ),
11255          b_abscisse      =BLOC(condition = "ABSCISSE != None",
11256            ORDONNEE        =SIMP(statut='o',typ='R',min=2,max='**',
11257                                fr ="Liste d ordonnées d une fonction réelle"),
11258          ),
11259          NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
11260                                fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
11261          b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
11262            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
11263            VALE_Y          =SIMP(statut='o',typ='R',max='**'),
11264          ),
11265
11266          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
11267          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11268          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11269          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
11270          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11271          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11272 )  ;
11273 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
11274 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11275 # ======================================================================
11276 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11277 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11278 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11279 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11280 # (AT YOUR OPTION) ANY LATER VERSION.
11281 #
11282 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11283 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11284 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11285 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11286 #
11287 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11288 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11289 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11290 # ======================================================================
11291 # RESPONSABLE GALENNE E.GALENNE
11292 DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
11293             UIinfo={"groupes":("Modélisation",)},
11294                     fr="Définition de lèvres et d'un fond de fissure en 3D",
11295          regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'),
11296                  EXCLUS('FOND_FERME','DTAN_ORIG'),
11297                  EXCLUS('FOND_FERME','DTAN_EXTR'),
11298                       EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
11299                       EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
11300                  UN_PARMI('LEVRE_SUP','NORMALE'),
11301                       EXCLUS('LEVRE_INF','NORMALE'),
11302                  ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
11303                  ENSEMBLE('FOND_SUP','FOND_INF'),
11304                  EXCLUS('FOND_INF','FOND_FISS'),
11305                  EXCLUS('FOND_INF','FOND_FERME'),
11306                       ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
11307                       EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
11308                       EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
11309            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
11310            FOND_FISS       =FACT(statut='f',
11311              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
11312                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
11313                           EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
11314              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11315              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11316              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11317              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11318 #  à mettre à jour le max vaut-il 1
11319              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
11320              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
11321              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
11322              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
11323            ),
11324            FOND_FERME      =FACT(statut='f',
11325              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
11326                           EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
11327              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11328              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11329              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11330              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11331              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
11332              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
11333              MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
11334              GROUP_MA_ORIG   =SIMP(statut='f',typ=grma,),
11335            ),
11336            FOND_INF       =FACT(statut='f',
11337              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11338              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11339              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11340              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11341              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
11342              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
11343              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
11344              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
11345            ),
11346            FOND_SUP       =FACT(statut='f',
11347              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11348              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11349              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11350              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11351              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
11352              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
11353              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
11354              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
11355            ),
11356            LEVRE_SUP       =FACT(statut='f',
11357              regles=(UN_PARMI('GROUP_MA','MAILLE'),),
11358              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11359              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11360            ),
11361            LEVRE_INF       =FACT(statut='f',
11362              regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
11363              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11364              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11365            ),
11366            NORMALE         =SIMP(statut='f',typ='R',max='**'),
11367            PREC_NORM       =SIMP(statut='f',typ='R',defaut=0.1),
11368            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
11369            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
11370            VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
11371            VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
11372            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
11373 )  ;
11374 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11375 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11376 # ======================================================================
11377 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
11378 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11379 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11380 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11381 # (AT YOUR OPTION) ANY LATER VERSION.
11382 #
11383 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11384 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11385 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11386 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11387 #
11388 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11389 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11390 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11391 # ======================================================================
11392 # RESPONSABLE FLEJOU J.L.FLEJOU
11393 #
11394 DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op=  119, sd_prod=gfibre_sdaster,
11395                     fr="Definition des groupes de fibres pour les elements multifibres",
11396                     reentrant='n',
11397             UIinfo={"groupes":("Modélisation",)},
11398          regles=(AU_MOINS_UN('SECTION','FIBRE'),),
11399
11400          INFO       =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
11401 #============================================================================
11402          SECTION     =FACT(statut='f',max='**',
11403               regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
11404                       PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
11405
11406               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
11407               TOUT_SECT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11408               GROUP_MA_SECT     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11409               MAILLE_SECT       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11410
11411               MAILLAGE_SECT     =SIMP(statut='o',typ=maillage_sdaster),
11412               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
11413          ),
11414
11415
11416 #============================================================================
11417          FIBRE     =FACT(statut='f',max='**',
11418               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
11419               CARA              =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
11420               VALE              =SIMP(statut='o',typ='R',max='**'),
11421               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
11422           ),
11423
11424
11425 ) ;
11426 #& MODIF COMMANDE  DATE 11/01/2011   AUTEUR SFAYOLLE S.FAYOLLE 
11427 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11428 # ======================================================================
11429 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11430 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11431 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11432 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11433 # (AT YOUR OPTION) ANY LATER VERSION.
11434 #
11435 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11436 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11437 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11438 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11439 #
11440 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11441 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11442 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11443 # ======================================================================
11444 # RESPONSABLE SFAYOLLE S.FAYOLLE
11445 DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f',
11446                UIinfo={"groupes":("Modélisation",)},
11447                fr="Déterminer les caractéristiques homogenéisées du béton armé à partir des propriétés du béton et des  "
11448                         +" armatures",
11449                reuse = SIMP(statut='f',typ=mater_sdaster),
11450                RELATION = SIMP(statut='o',typ='TXM',defaut="GLRC_DAMAGE",
11451                           into=("GLRC_DM","GLRC_DAMAGE"),),
11452
11453                b_glrc_dm=BLOC(condition = "RELATION == 'GLRC_DM'",
11454                               fr="Paramètres de la loi GLRC_DM",
11455                               BETON = FACT(statut='o',max=1,
11456                                 MATER = SIMP(statut='o',typ=(mater_sdaster),),
11457                                 EPAIS = SIMP(statut='o',typ='R',val_min=0.E+0 ),),
11458                               NAPPE = FACT(statut='o',max=1,
11459                                 MATER = SIMP(statut='o',typ=(mater_sdaster),),
11460                                 OMY   = SIMP(statut='o',typ='R',val_min=0.E+0,),
11461                                 OMX   = SIMP(statut='o',typ='R',val_min=0.E+0,),
11462                                 RY    = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0,),
11463                                 RX    = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0),),
11464                               RHO = SIMP(statut='f',typ='R',val_min=0.E+0,),
11465                               AMOR_ALPHA = SIMP(statut='f',typ='R',val_min=0.E+0,),
11466                               AMOR_BETA = SIMP(statut='f',typ='R',val_min=0.E+0,),
11467                               COMPR = SIMP(statut='o',typ='TXM',defaut="GAMMA",
11468                                            into=("GAMMA","SEUIL")),
11469                    b_gamma=BLOC(condition = "COMPR == 'GAMMA'",
11470                                 fr="Paramètre d'endommagement en compression ",
11471                                 GC = SIMP(statut='o',typ='R',defaut=1.0E+0,val_min=0.0E+0, val_max=1.0E+0),),
11472                    b_seuil=BLOC(condition = "COMPR == 'SEUIL'",
11473                                 fr="Seuil d'endommagement en compression ",
11474                                 SYC = SIMP(statut='o',typ='R'),),
11475                    PENTE = SIMP(statut='o',typ='TXM',defaut="RIGI_ACIER",
11476                                 into=("PLAS_ACIER","UTIL","RIGI_ACIER")),
11477                    b_util = BLOC(condition = "PENTE == 'UTIL'",
11478                                  fr="Valeur de la déformation maximale de l'élément",
11479                                   EPSI_MEMB = SIMP(statut='o',typ='R',defaut=0.E+0),
11480                                   EPSI_FLEX = SIMP(statut='o',typ='R',defaut=0.E+0),),
11481                    CISAIL = SIMP(statut='o',typ='TXM',defaut="NON",
11482                                  into=("OUI","NON"),),
11483                    METHODE_ENDO = SIMP(statut='o',typ='TXM',defaut="ENDO_INTER",
11484                                   into=("ENDO_NAISS","ENDO_LIM","ENDO_INTER"),),
11485                    INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2),),
11486                            ),
11487            b_glrc_damage=BLOC(condition = "RELATION == 'GLRC_DAMAGE'",
11488                             fr="Paramètres de la loi GLRC_DAMAGE",
11489                    BETON            =FACT(statut='o',max=1,
11490                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
11491                      EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
11492                      GAMMA           =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
11493                      QP1             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
11494                      QP2             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
11495
11496                      C1N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
11497                      C1N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
11498                      C1N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
11499                      C2N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
11500                      C2N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
11501                      C2N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
11502                      C1M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
11503                      C1M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
11504                      C1M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
11505                      C2M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
11506                      C2M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
11507                      C2M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
11508
11509                      OMT             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0),
11510                      EAT             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0),
11511                      BT1             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0),
11512                      BT2             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0),
11513
11514                      MP1X            =SIMP(statut='f',typ=('R',listr8_sdaster)),
11515                      MP2X            =SIMP(statut='f',typ=('R',listr8_sdaster)),
11516                      MP1Y            =SIMP(statut='f',typ=('R',listr8_sdaster)),
11517                      MP2Y            =SIMP(statut='f',typ=('R',listr8_sdaster)),
11518          ),
11519                    NAPPE     =FACT(statut='o',max=10,
11520                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
11521                      OMX             =SIMP(statut='o',typ='R',val_min=0.E+0),
11522                      OMY             =SIMP(statut='o',typ='R',val_min=0.E+0),
11523                      RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
11524                      RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
11525          ),
11526                    CABLE_PREC   =FACT(statut='f',max=1,
11527                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
11528                      OMX             =SIMP(statut='o',typ='R',val_min=0.E+0),
11529                      OMY             =SIMP(statut='o',typ='R',val_min=0.E+0),
11530                      RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
11531                      RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
11532                      PREX            =SIMP(statut='o',typ='R'),
11533                      PREY            =SIMP(statut='o',typ='R'),
11534          ),
11535                    LINER           =FACT(statut='f',max=10,
11536                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
11537                      OML             =SIMP(statut='o',typ='R',val_min=0.E+0),
11538                      RLR             =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
11539          ),
11540                    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2),),
11541          ),
11542 )  ;
11543 #& MODIF COMMANDE  DATE 08/03/2011   AUTEUR MASSIN P.MASSIN 
11544 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11545 # ======================================================================
11546 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11547 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
11548 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
11549 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
11550 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
11551 #                                                                       
11552 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
11553 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
11554 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
11555 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
11556 #                                                                       
11557 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
11558 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
11559 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
11560 # ======================================================================
11561 # RESPONSABLE GENIAUT S.GENIAUT
11562 DEFI_GRILLE=OPER(nom="DEFI_GRILLE",op=82,sd_prod=grille_sdaster,reentrant='n',
11563                 UIinfo={"groupes":("Modélisation",)},
11564                 fr="Définition d'une grille",
11565     
11566     MAILLAGE       = SIMP(statut='o',typ=maillage_sdaster),
11567
11568     INFO           = SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ),
11569 )  ;
11570 #& MODIF COMMANDE  DATE 01/03/2011   AUTEUR GENIAUT S.GENIAUT 
11571 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11572 # ======================================================================
11573 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11574 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11575 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11576 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11577 # (AT YOUR OPTION) ANY LATER VERSION.
11578 #
11579 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11580 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11581 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11582 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11583 #
11584 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11585 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11586 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11587 # ======================================================================
11588 # RESPONSABLE PELLET J.PELLET
11589 def defi_group_prod(MAILLAGE,**args):
11590   if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster
11591   if AsType(MAILLAGE) == squelette : return squelette
11592   raise AsException("type de concept resultat non prevu")
11593
11594 DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
11595                 fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
11596                 reentrant='o',
11597             UIinfo={"groupes":("Maillage",)},
11598          regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),),
11599          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
11600          DETR_GROUP_MA   =FACT(statut='f',max='**',
11601            NOM             =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),),
11602          DETR_GROUP_NO   =FACT(statut='f',max='**',
11603            NOM             =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
11604
11605
11606          CREA_GROUP_MA   =FACT(statut='f',max='**',
11607               regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
11608             NOM             =SIMP(statut='o',typ=grma),
11609             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11610             GROUP_MA        =SIMP(statut='f',typ=grma),
11611             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11612             INTERSEC        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11613             UNION           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11614             DIFFE           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11615             TYPE_MAILLE     =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","1D","2D","3D"),max=1 ),
11616
11617             OPTION         =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE",
11618                                                               "BANDE","APPUI_LACHE","APPUI","FISS_XFEM") ),
11619                 b_group_ma      =BLOC(condition = "GROUP_MA != None",
11620                   regles=(EXCLUS('POSITION','NUME_INIT'),),
11621                   NUME_INIT       =SIMP(statut='f',typ='I'),
11622                   POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
11623                   b_nume_init   =BLOC(condition = "NUME_INIT != None",
11624                     NUME_FIN        =SIMP(statut='f',typ='I' ),
11625                   ),
11626                 ),
11627                 b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
11628                   regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
11629                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
11630                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
11631                   ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
11632                   VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11633                 ),
11634                 b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
11635                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
11636                   POINT           =SIMP(statut='f',typ='R',max=3),
11637                   NOEUD_CENTRE    =SIMP(statut='f',typ=no),
11638                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
11639                   RAYON           =SIMP(statut='o',typ='R' ),
11640                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
11641                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
11642                 ),
11643                 b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
11644                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
11645                           UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
11646                   POINT           =SIMP(statut='f',typ='R',max=3),
11647                   NOEUD_CENTRE    =SIMP(statut='f',typ=no),
11648                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
11649                   RAYON           =SIMP(statut='o',typ='R' ),
11650                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
11651                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
11652                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
11653                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
11654                 ),
11655                 b_bande         =BLOC(condition = "OPTION == 'BANDE'",
11656                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
11657                           UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
11658                   POINT           =SIMP(statut='f',typ='R' ,max=3),
11659                   NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
11660                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
11661                   DIST            =SIMP(statut='o',typ='R' ),
11662                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
11663                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
11664                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
11665                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
11666                 ),
11667                 b_app_lache         =BLOC(condition = "OPTION == 'APPUI_LACHE'",
11668                   regles=(UN_PARMI('NOEUD','GROUP_NO'),),
11669                   NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11670                   GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11671                 ),
11672                 b_appui            =BLOC(condition = "OPTION == 'APPUI'",
11673                   regles=(UN_PARMI('NOEUD','GROUP_NO'),),
11674                   NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11675                   GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11676                   TYPE_APPUI      =SIMP(statut='o',typ='TXM',max=1, into=('AU_MOINS_UN','TOUT','SOMMET','MAJORITE')),
11677                 ),
11678                 b_fiss_xfem       =BLOC(condition = "OPTION == 'FISS_XFEM'",
11679                   TYPE_GROUP      =SIMP(statut='o',typ='TXM',max=1,defaut='XFEM',
11680                                           into=('HEAVISIDE','CRACKTIP','MIXTE','FISSUREE','XFEM',),),
11681                   FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
11682                 ),
11683          ),
11684
11685
11686          CREA_GROUP_NO   =FACT(statut='f',max='**',
11687            OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
11688                                                "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL","INCLUSION","FISS_XFEM") ),
11689
11690            b_option =BLOC(condition = "OPTION == None" ,
11691                           regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD',
11692                                                            'INTERSEC','UNION','DIFFE'),),
11693               TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11694               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11695               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11696               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11697               INTERSEC        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11698               UNION           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11699               DIFFE           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11700
11701               b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
11702                 NOM           = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11703                 CRIT_NOEUD    = SIMP(statut='f',typ='TXM',defaut="TOUS",
11704                                   into=("TOUS","SOMMET","MILIEU","CENTRE"),),
11705               ),
11706               b_group_no      =BLOC(condition = "GROUP_NO != None",
11707                                     regles=(EXCLUS('POSITION','NUME_INIT'),),
11708                 NUME_INIT       =SIMP(statut='f',typ='I'),
11709                 POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
11710                 b_nume_init     =BLOC(condition = "NUME_INIT != None",
11711                   NUME_FIN        =SIMP(statut='f',typ='I' ),
11712                 ),
11713               ),
11714               b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
11715                 NOM             =SIMP(statut='o',typ=geom),
11716               ),
11717            ),
11718
11719            b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
11720              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
11721              NOM             =SIMP(statut='o',typ=geom),
11722              POINT           =SIMP(statut='f',typ='R' ,max=3),
11723              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
11724              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
11725              RAYON           =SIMP(statut='o',typ='R' ),
11726              PRECISION       =SIMP(statut='o',typ='R' ),
11727            ),
11728            b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
11729              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
11730                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
11731              NOM             =SIMP(statut='o',typ=geom),
11732              POINT           =SIMP(statut='f',typ='R' ,max=3),
11733              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
11734              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
11735              RAYON           =SIMP(statut='o',typ='R' ),
11736              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
11737              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
11738              PRECISION       =SIMP(statut='o',typ='R' ),
11739            ),
11740            b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
11741              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
11742                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
11743              NOM             =SIMP(statut='o',typ=geom),
11744              POINT           =SIMP(statut='f',typ='R' ,max=3),
11745              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
11746              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
11747              ANGL_NAUT       =SIMP(statut='f',typ='R' ,max=3),
11748              VECT_NORMALE    =SIMP(statut='f',typ='R' ,max=3),
11749              PRECISION       =SIMP(statut='o',typ='R' ),
11750            ),
11751            b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
11752              regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),
11753                      UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
11754                      UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
11755              NOM             =SIMP(statut='o',typ=geom),
11756              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11757              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11758              NOEUD_ORIG      =SIMP(statut='f',typ=no),
11759              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
11760              NOEUD_EXTR      =SIMP(statut='f',typ=no),
11761              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
11762              PRECISION       =SIMP(statut='o',typ='R' ),
11763              CRITERE         =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ),
11764            ),
11765            b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
11766              regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
11767                      EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
11768              NOM             =SIMP(statut='o',typ=geom),
11769              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
11770              NOEUD_ORIG      =SIMP(statut='f',typ=no),
11771              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
11772              NOEUD_EXTR      =SIMP(statut='f',typ=no),
11773              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
11774            ),
11775            b_tunnel    =BLOC(condition = "OPTION == 'TUNNEL'",
11776              regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'),
11777                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
11778                      AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
11779              NOM             =SIMP(statut='o',typ=geom),
11780              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11781              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11782              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11783              GROUP_MA_AXE    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
11784              MAILLE_AXE      =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
11785              NOEUD_ORIG      =SIMP(statut='f',typ=no),
11786              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
11787              RAYON           =SIMP(statut='o',typ='R'),
11788              LONGUEUR        =SIMP(statut='f',typ='R'),
11789            ),
11790            b_inclusion         =BLOC(condition = "OPTION == 'INCLUSION'",
11791              fr="""crée le groupe des noeuds des mailles de GROUP_MA inclus géométriquement
11792                    dans les mailles de GROUP_MA_INCL""",
11793              NOM             =SIMP(statut='o',typ=geom),
11794              CAS_FIGURE      =SIMP(statut='o',typ='TXM',into=("2D","3D","2.5D",)),
11795              DISTANCE_MAX    =SIMP(statut='f',typ='R',),
11796              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
11797              GROUP_MA_INCL   =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
11798              MAILLAGE_INCL   =SIMP(statut='f',typ=maillage_sdaster),
11799            ),
11800            b_fiss_xfem            =BLOC(condition = "OPTION == 'FISS_XFEM'",
11801                   NOM             =SIMP(statut='o',typ=geom),
11802                   TYPE_GROUP      =SIMP(statut='o',typ='TXM',max=1,into=('HEAVISIDE','CRACKTIP','MIXTE','XFEM',)),
11803                   FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
11804            ),
11805           ),
11806          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11807          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
11808 )  ;
11809 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11810 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11811 # ======================================================================
11812 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11813 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11814 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11815 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11816 # (AT YOUR OPTION) ANY LATER VERSION.
11817 #
11818 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11819 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11820 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11821 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11822 #
11823 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11824 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11825 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11826 # ======================================================================
11827 # RESPONSABLE ZENTNER I.ZENTNER
11828 from Macro.defi_inte_spec_ops import defi_inte_spec_ops
11829
11830 DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC",op= defi_inte_spec_ops,sd_prod=table_fonction,
11831                      reentrant='n',
11832                      fr="Définit une matrice interspectrale",
11833                      UIinfo={"groupes":("Fonctions",)},
11834
11835          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
11836
11837          PAR_FONCTION    =FACT(statut='f',max='**',
11838            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
11839            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
11840            FONCTION        =SIMP(statut='o',typ=fonction_c ),
11841          ),
11842          KANAI_TAJIMI    =FACT(statut='f',max='**',
11843            regles=(EXCLUS('VALE_R','VALE_C'),),
11844            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
11845            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
11846            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
11847            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
11848            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
11849            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
11850            FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
11851            VALE_R          =SIMP(statut='f',typ='R' ),
11852            VALE_C          =SIMP(statut='f',typ='C' ),
11853            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
11854            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11855            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11856          ),
11857          CONSTANT        =FACT(statut='f',max='**',
11858            regles=(EXCLUS('VALE_R','VALE_C'),),
11859            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
11860            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
11861            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
11862            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
11863            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
11864            VALE_R          =SIMP(statut='f',typ='R' ),
11865            VALE_C          =SIMP(statut='f',typ='C' ),
11866            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
11867            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11868            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
11869          ),
11870          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11871          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11872 )  ;
11873 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11874 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11875 # ======================================================================
11876 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11877 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11878 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11879 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11880 # (AT YOUR OPTION) ANY LATER VERSION.
11881 #
11882 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11883 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11884 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11885 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11886 #
11887 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11888 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11889 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11890 # ======================================================================
11891 # RESPONSABLE CORUS M.CORUS
11892
11893 DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
11894                       reentrant='n',
11895             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
11896             fr="Définir les interfaces d'une structure et leur affecter un type",
11897          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
11898          INTERFACE       =FACT(statut='o',max='**',
11899            regles=(ENSEMBLE('NOM','TYPE'),
11900 #  erreur doc U sur la condition qui suit
11901                    UN_PARMI('NOEUD','GROUP_NO'),),
11902            NOM             =SIMP(statut='f',typ='TXM' ),
11903            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
11904            NOEUD           =SIMP(statut='f',typ=no,max='**'),
11905            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
11906 #           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
11907            MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
11908          ),
11909          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
11910          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11911 )  ;
11912 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
11913 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11914 # ======================================================================
11915 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11916 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11917 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11918 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11919 # (AT YOUR OPTION) ANY LATER VERSION.
11920 #
11921 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11922 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11923 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11924 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11925 #
11926 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11927 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11928 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11929 # ======================================================================
11930 # RESPONSABLE COURTOIS M.COURTOIS
11931 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
11932                     fr="Définir une liste d'entiers strictement croissante",
11933                     reentrant='n',
11934             UIinfo={"groupes":("Fonctions",)},
11935
11936          OPERATION    =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)),
11937
11938
11939          # définition d'une liste d'entiers
11940          #----------------------------------
11941          b_defi       =BLOC(condition = "OPERATION == 'DEFI'",
11942              regles=(UN_PARMI('VALE','DEBUT'),
11943                      EXCLUS('VALE','INTERVALLE'),),
11944              VALE            =SIMP(statut='f',typ='I',max='**'),
11945              DEBUT           =SIMP(statut='f',typ='I'),
11946              INTERVALLE      =FACT(statut='f',max='**',
11947                  regles=(UN_PARMI('NOMBRE','PAS'),),
11948                  JUSQU_A         =SIMP(statut='o',typ='I'),
11949                  NOMBRE          =SIMP(statut='f',typ='I',val_min=1,),
11950                  PAS             =SIMP(statut='f',typ='I',val_min=1,),
11951              ),
11952          ),
11953
11954
11955          # extraction d'une liste de nume_ordre dans une sd_resultat :
11956          #------------------------------------------------------------
11957          b_extr       =BLOC(condition = "OPERATION == 'NUME_ORDRE'",
11958              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
11959              PARAMETRE       =SIMP(statut='o',typ='TXM',),
11960              INTERV_R        =SIMP(statut='o',typ='R',min=2,max=2),
11961          ),
11962
11963
11964          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
11965          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11966 )  ;
11967 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR GENIAUT S.GENIAUT 
11968 #            CONFIGURATION MANAGEMENT OF EDF VERSION
11969 # ======================================================================
11970 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11971 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11972 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11973 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11974 # (AT YOUR OPTION) ANY LATER VERSION.
11975 #
11976 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11977 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11978 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11979 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11980 #
11981 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11982 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11983 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11984 # ======================================================================
11985 # RESPONSABLE GENIAUT S.GENIAUT
11986
11987
11988 # bloc utilisé deux fois à l'identique
11989 bloc_unif = BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
11990                 SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,max=1,
11991                                      fr="Coefficient multiplicateur de la 1ère subdivision"),
11992                 SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,max=1,
11993                                      fr="Nombre de subdivision d'un pas de temps"),
11994
11995                 b_subd_unif_manu  =   BLOC(condition="METHODE == 'MANUEL'",
11996                     regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
11997                     SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,defaut=3,max=1,
11998                                      fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
11999                     SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1,
12000                                        fr="Pas de temps en dessous duquel on ne subdivise plus"),
12001                 ),
12002
12003                 b_subd_unif_auto  =   BLOC(condition="METHODE == 'AUTO'",
12004                     SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1,
12005                                        fr="Pas de temps en dessous duquel on ne subdivise plus"),
12006                 ),
12007             ) # fin si UNIFORME
12008
12009 DEFI_LIST_INST=OPER(nom="DEFI_LIST_INST",op=  28,sd_prod=list_inst,reentrant='n',
12010             UIinfo={"groupes":("Fonctions",)},
12011                fr="Définition de la gestion de la liste d'instants",
12012
12013 # ----------------------------------------------------------------------------------------------------------------------------------
12014 # mot-cle pour la definition a priori de la liste d'instant
12015 # ----------------------------------------------------------------------------------------------------------------------------------
12016
12017     DEFI_LIST             =FACT(statut='o',max=1,
12018
12019       METHODE  =SIMP(statut='o',typ='TXM',into=("MANUEL","AUTO",),defaut="MANUEL",max=1,position='global' ),
12020
12021          b_manuel            =BLOC(condition = "METHODE == 'MANUEL' ",fr="Liste d'instants donnée par l'utilisateur",
12022            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
12023                                   ),
12024
12025          b_auto              =BLOC(condition = "(METHODE == 'AUTO') ",fr="Gestion automatique de la liste d'instants",
12026            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
12027            PAS_MINI    =SIMP(statut='f',typ='R',val_min=1.e-12,max=1),
12028            PAS_MAXI    =SIMP(statut='f',typ='R',max=1),
12029            NB_PAS_MAXI =SIMP(statut='f',typ='I',val_max=1000000,max=1,defaut=1000000),
12030                                   ),
12031
12032                       ),
12033 # ----------------------------------------------------------------------------------------------------------------------------------
12034 # mot-cle pour le comportement en cas d'echec (on doit recommencer le meme instant)
12035 # ----------------------------------------------------------------------------------------------------------------------------------
12036
12037     ECHEC  =FACT(statut='d',max='**',
12038
12039         EVENEMENT     =SIMP(statut='f',typ='TXM',into=("ERREUR","DELTA_GRANDEUR","DIVE_ITER_PILO"),defaut="ERREUR",max=1 ),
12040
12041         b_edelta           =BLOC(condition = "EVENEMENT == 'DELTA_GRANDEUR' ",fr=" ",
12042 #      event-driven : on sous-decoupe si l'increment d'une composante d'un champ depasse le seuil
12043             VALE_REF          =SIMP(statut='o',typ='R',max=1),
12044             NOM_CHAM          =SIMP(statut='o',typ='TXM',into=("DEPL","VARI_ELGA","SIEF_ELGA",),max=1),
12045             NOM_CMP           =SIMP(statut='o',typ='TXM',max=1),
12046
12047             SUBD_METHODE    =SIMP(statut='f',typ='TXM',into =("AUCUNE","UNIFORME"),defaut="UNIFORME",max=1,
12048                             fr="Méthode de subdivision des pas de temps en cas de diconvergence pour event-driven"),
12049
12050             b_subd_unif = bloc_unif,
12051
12052         ), # fin si DELTA_GRANDEUR
12053
12054         b_subd_erreur  =   BLOC(condition="EVENEMENT == 'ERREUR'",
12055             SUBD_METHODE    =SIMP(statut='f',typ='TXM',into =("AUCUNE","UNIFORME","EXTRAPOLE"),defaut="UNIFORME",max=1,
12056                                   fr="Méthode de subdivision des pas de temps en cas de divergence pour erreur"),
12057
12058             b_subd_unif = bloc_unif,
12059
12060             b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
12061                 SUBD_OPTION    =SIMP(statut='f',typ='TXM', into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
12062                                      defaut="IGNORE_PREMIERES",
12063                     fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
12064                 SUBD_ITER_IGNO =SIMP(statut='f',typ='I',defaut=3,val_min=3,max=1,
12065                                      fr="Les n premières itérations sont ignorées pour l'extrapolation"),
12066                 SUBD_ITER_FIN  =SIMP(statut='f',typ='I',defaut=8,val_min=3,max=1,
12067                                      fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
12068                 SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,max=1,
12069                                      fr="Nombre de subdivision d'un pas de temps en cas ERREUR"),
12070
12071                 b_subd_unif_manu  =   BLOC(condition="METHODE == 'MANUEL'",
12072                     regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
12073                     SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,max=1,
12074                                      fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
12075                     SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1,
12076                                        fr="Pas de temps en dessous duquel on ne subdivise plus"),
12077                 ),
12078
12079                 b_subd_unif_auto  =   BLOC(condition="METHODE == 'AUTO'",
12080                     SUBD_PAS_MINI=SIMP(statut='f',typ='R',defaut=0.,val_min=0.0,max=1,
12081                                        fr="Pas de temps en dessous duquel on ne subdivise plus"),
12082                 ),
12083
12084                 SUBD_ITER_PLUS =SIMP(statut='f',typ='I',defaut=50,val_min=20,max=1,
12085                                      fr="% itération autorisée en plus"),
12086             ), # fin si EXTRAPOLE
12087         ), # fin si ERREUR
12088
12089    ), # fin ECHEC
12090
12091 # ----------------------------------------------------------------------------------------------------------------------------------
12092 # mot-cle pour le comportement en cas de succes (on a bien converge)
12093 # ----------------------------------------------------------------------------------------------------------------------------------
12094
12095   b_adap  =   BLOC(condition="METHODE == 'AUTO'",
12096
12097     ADAPTATION  =FACT(statut='d',max='**',
12098
12099 #     1) parametres de l'evenement declencheur
12100 #     ----------------------------------------
12101
12102       EVENEMENT       =SIMP(statut='f',typ='TXM',into=("SEUIL","TOUT_INST","AUCUN"),defaut="SEUIL",max=1 ),
12103
12104          b_adap_seuil       =BLOC(condition = "EVENEMENT == 'SEUIL' ",fr="seuil de re-decoupe",
12105
12106 #          FORMULE_SEUIL          =SIMP(statut='f',typ=formule),
12107
12108 #          b_adap_seuil_nf   =   BLOC(condition="FORMULE_SEUIL == None",
12109 #              critere : si on fait NB_INCR_SEUIL fois de suite des increments verifiant le critere
12110                regles=(PRESENT_PRESENT('NB_INCR_SEUIL','NOM_PARA',),
12111                        PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',),
12112                        PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',),),
12113                NB_INCR_SEUIL     =SIMP(statut='f',typ='I',defaut=2),
12114                NOM_PARA          =SIMP(statut='f',typ='TXM',into=("NB_ITER_NEWTON",),defaut="NB_ITER_NEWTON"),
12115                CRIT_COMP         =SIMP(statut='f',typ='TXM',into=("LT","GT","LE","GE"),defaut="LE"),
12116 #                   b_vale_R           =BLOC(condition = "NOM_PARA == 'DP' ",fr="valeur reelle",
12117 #                VALE              =SIMP(statut='o',typ='R'),
12118 #                                           ),
12119                   b_vale_I           =BLOC(condition = "NOM_PARA == 'NB_ITER_NEWTON' ",fr="valeur entiere",
12120                VALE_I            =SIMP(statut='f',typ='I'),
12121                                           ),
12122 #                                    ),
12123                                 ),
12124
12125 #     2) parametre du mode de calcul de dt+
12126 #     ----------------------------------------
12127
12128       MODE_CALCUL_TPLUS =SIMP(statut='f',typ='TXM',into=("FIXE","DELTA_GRANDEUR","ITER_NEWTON","FORMULE","IMPLEX"),defaut='FIXE',
12129                               max=1),
12130
12131          b_mfixe           =BLOC(condition = "MODE_CALCUL_TPLUS == 'FIXE' ",fr="fixe",
12132 #      dans le cas FIXE :(deltaT+) = (deltaT-)x(1+PCENT_AUGM/100)
12133       PCENT_AUGM                 =SIMP(statut='f',typ='R',defaut=100.,val_min=-100.,max=1),
12134                                ),
12135          b_mdelta           =BLOC(condition = "MODE_CALCUL_TPLUS == 'DELTA_GRANDEUR' ",fr=" ",
12136 #      dans le cas DELTA_GRANDEUR : (deltaT+) = (deltaT-)x(VALREF/deltaVAL) : l'acceleration est inversement proportionnelle
12137 #                                                                             a la variation de la grandeur
12138       VALE_REF          =SIMP(statut='o',typ='R',max=1),
12139       NOM_CHAM          =SIMP(statut='o',typ='TXM',into=("DEPL","VARI_ELGA","SIEF_ELGA",),max=1),
12140       NOM_CMP           =SIMP(statut='o',typ='TXM',max=1),
12141                                   ),
12142          b_mitnew           =BLOC(condition = "MODE_CALCUL_TPLUS == 'ITER_NEWTON' ",fr=" ",
12143 #      dans le cas ITER_NEWTON : (deltaT+) = (deltaT-) x sqrt(VALREF/N) : l'acceleration est inversement proportionnelle
12144 #                                                                        au nombre d'iter de Newton precedent
12145       NB_ITER_NEWTON_REF          =SIMP(statut='o',typ='I',max=1),
12146                                   ),
12147          b_mformule           =BLOC(condition = "MODE_CALCUL_TPLUS == 'FORMULE' ",fr=" ",
12148 #      dans le cas FORMULE
12149            regles=UN_PARMI('FORMULE_TPLUS','NOM_SCHEMA'),
12150       FORMULE_TPLUS     =SIMP(statut='f',typ=formule),
12151       NOM_SCHEMA        =SIMP(statut='f',typ='TXM',into=("OLIVER",)),
12152                                    ),
12153
12154 # les schemas pre-definis :
12155 #  abaqus :
12156 #      EVENEMENT       ='SEUIL'
12157 #      NB_INCR_SEUIL     = 2
12158 #      NOM_PARA          ='NB_ITER_NEWTON'
12159 #      CRIT_COMP         ='LE'
12160 #      VALE_I            = 5
12161 #      MODE_CALCUL_TPLUS ='FIXE'
12162 #      PCENT_AUGM        = 50.
12163 #  Zebulon 1 :
12164 #      EVENEMENT       ='TOUT_INST'
12165 #      MODE_CALCUL_TPLUS ='DELTA_GRANDEUR'
12166 #      VALE_REF          = valref
12167 #      NOM_CHAM          ='VARI_ELGA'
12168 #      NOM_CMP           ='V1'
12169 #  Zebulon 2 :
12170 #      EVENEMENT       ='TOUT_INST'
12171 #      MODE_CALCUL_TPLUS ='ITER_NEWTON'
12172 #      NB_ITER_NEWTON_REF= nc
12173 #  Tough2 :
12174 #      EVENEMENT       ='SEUIL'
12175 #      NB_INCR_SEUIL     = 1
12176 #      NOM_PARA          ='NB_ITER_NEWTON'
12177 #      CRIT_COMP         ='LE'
12178 #      VALE_I            = n
12179 #      MODE_CALCUL_TPLUS ='FIXE'
12180 #      PCENT_AUGM        = 100.
12181 #  Oliver :
12182 #      EVENEMENT       ='TOUT_INST'
12183 #      MODE_CALCUL_TPLUS ='FORMULE'
12184 #      NOM_SCHEMA        ='OLIVER'
12185
12186              ),
12187       ),
12188 #  b_adaplex  =   BLOC(condition = "METHODE == 'AUTO' and MODE_CALCUL_TPLUS == 'IMPLEX'",
12189 #
12190 #    ADAPTATION  =FACT(statut='d',max='**',
12191 #
12192 #     1 parametres de l'evenement declencheur
12193 #     ----------------------------------------
12194 #
12195 #      EVENEMENT       =SIMP(statut='f',typ='TXM',into=("TOUT_INST",),defaut="TOUT_INST",max=1 ),
12196 #
12197 #                           
12198 #     2 parametre du mode de calcul de dt+
12199 #     ----------------------------------------
12200 #
12201 #     MODE_CALCUL_TPLUS =SIMP(statut='f',typ='TXM',into=("IMPLEX",),defaut='IMPLEX',max=1,position='global' ),
12202 #
12203 #             ),
12204 #     ),
12205
12206 # ----------------------------------------------------------------------------------------------------------------------------------
12207
12208     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
12209
12210 )  ;
12211
12212 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
12213 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12214 # ======================================================================
12215 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12216 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12217 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12218 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12219 # (AT YOUR OPTION) ANY LATER VERSION.
12220 #
12221 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12222 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12223 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12224 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12225 #
12226 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12227 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12228 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12229 # ======================================================================
12230 # RESPONSABLE COURTOIS M.COURTOIS
12231 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
12232                     fr="Définir une liste de réels strictement croissante",
12233                     reentrant='n',
12234             UIinfo={"groupes":("Fonctions",)},
12235          regles=(UN_PARMI('VALE','DEBUT',),
12236                  EXCLUS('VALE','INTERVALLE'),
12237                  ENSEMBLE('DEBUT','INTERVALLE')),
12238          VALE            =SIMP(statut='f',typ='R',max='**'),
12239          DEBUT           =SIMP(statut='f',typ='R'),
12240          INTERVALLE      =FACT(statut='f',max='**',
12241            regles=(UN_PARMI('NOMBRE','PAS'),),
12242            JUSQU_A         =SIMP(statut='o',typ='R'),
12243            NOMBRE          =SIMP(statut='f',typ='I'),
12244            PAS             =SIMP(statut='f',typ='R'),
12245          ),
12246          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
12247          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12248 )  ;
12249 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
12250 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12251 # ======================================================================
12252 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12253 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12254 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12255 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12256 # (AT YOUR OPTION) ANY LATER VERSION.
12257 #
12258 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12259 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12260 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12261 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12262 #
12263 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12264 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12265 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12266 # ======================================================================
12267 # RESPONSABLE PELLET J.PELLET
12268 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
12269                    fr="Définition d'un nouveau maillage à partir de macro-éléments",
12270                    reentrant='n',
12271             UIinfo={"groupes":("Maillage",)},
12272          DEFI_SUPER_MAILLE =FACT(statut='o',max='**',
12273            MACR_ELEM       =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),max='**' ),
12274            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
12275            TRAN            =SIMP(statut='f',typ='R',max=3),
12276            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
12277            b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
12278              CENTRE          =SIMP(statut='f',typ='R',max=3),
12279            ),
12280          ),
12281          RECO_GLOBAL     =FACT(statut='f',max='**',
12282            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
12283            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12284            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
12285            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12286            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12287          ),
12288          RECO_SUPER_MAILLE =FACT(statut='f',max='**',
12289            SUPER_MAILLE    =SIMP(statut='o',typ=ma,max='**'),
12290            GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
12291            OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
12292            geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
12293              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12294              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12295            ),
12296          ),
12297          DEFI_NOEUD      =FACT(statut='f',max='**',
12298            regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
12299            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
12300                                  fr="Renommage de tous les noeuds" ),
12301            NOEUD_INIT      =SIMP(statut='f',typ=no,
12302                                  fr="Renommage d un seul noeud"),
12303            b_tout          =BLOC(condition = "TOUT != None",
12304              PREFIXE         =SIMP(statut='f',typ='TXM' ),
12305              INDEX           =SIMP(statut='o',typ='I',max='**'),
12306            ),
12307            b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
12308              SUPER_MAILLE    =SIMP(statut='o',typ=ma),
12309              NOEUD_FIN       =SIMP(statut='o',typ=no),
12310            ),
12311          ),
12312          DEFI_GROUP_NO   =FACT(statut='f',max='**',
12313            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),
12314                 AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
12315                    ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
12316 #  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U
12317            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
12318                                  fr="Création de plusieurs groupes de noeuds" ),
12319            SUPER_MAILLE    =SIMP(statut='f',typ=ma,
12320                                  fr="Création de plusieurs groupes de noeuds"),
12321            GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
12322                                  fr="Création d un seul groupe de noeuds"),
12323            PREFIXE         =SIMP(statut='f',typ='TXM' ),
12324            INDEX           =SIMP(statut='f',typ='I',max='**'),
12325            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
12326          ),
12327 )  ;
12328 #& MODIF COMMANDE  DATE 23/02/2011   AUTEUR LAVERNE J.LAVERNE 
12329 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12330 # ======================================================================
12331 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
12332 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12333 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12334 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12335 # (AT YOUR OPTION) ANY LATER VERSION.
12336 #
12337 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12338 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12339 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12340 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12341 #
12342 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12343 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12344 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12345 # ======================================================================
12346 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
12347 DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
12348                    fr="Définition des paramètres décrivant le comportement d un matériau",
12349                    reentrant='f',
12350             UIinfo={"groupes":("Modélisation",)},
12351        regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH',
12352                       'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO',
12353                       'ELAS_HYPER','ELAS_2NDG',),
12354                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
12355                EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'),
12356                EXCLUS('ENDO_HETEROGENE'),
12357                EXCLUS('TAHERI','TAHERI_FO'),
12358                EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
12359                EXCLUS('VISC_SINH','VISC_SINH_FO'),
12360                PRESENT_PRESENT('ROUSSELIER','TRACTION'),
12361                PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
12362                EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
12363                EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
12364                EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
12365                EXCLUS('LEMAITRE','LEMAITRE_FO','VISC_IRRA_LOG',
12366                'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',),
12367                EXCLUS('META_LEMA_ANI','META_LEMA_ANI_FO'),
12368                EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
12369                EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
12370                EXCLUS('VISC_ENDO','VISC_ENDO_FO'),
12371                PRESENT_PRESENT('BPEL_ACIER','ELAS'),
12372                EXCLUS('RCCM','RCCM_FO'),
12373                EXCLUS('WEIBULL','WEIBULL_FO'),
12374                PRESENT_PRESENT('LAIGLE','ELAS'),
12375                PRESENT_PRESENT('LETK','ELAS'),
12376                PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
12377                PRESENT_PRESENT('VISC_DRUC_PRAG','ELAS'),
12378                PRESENT_PRESENT('ELAS_GONF','ELAS'),
12379                PRESENT_PRESENT('HOEK_BROWN','ELAS'),
12380                EXCLUS('MAZARS','MAZARS_FO'),
12381                PRESENT_PRESENT('JOINT_BA','ELAS'),
12382                PRESENT_PRESENT('CABLE','ELAS'),
12383                ),
12384            MATER      =SIMP(statut='f',typ=mater_sdaster),
12385 #
12386 # comportement élastique
12387 #
12388            ELAS            =FACT(statut='f',
12389              E               =SIMP(statut='o',typ='R',val_min=0.E+0),
12390              NU              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0),
12391              RHO             =SIMP(statut='f',typ='R'),
12392              ALPHA           =SIMP(statut='f',typ='R'),
12393              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
12394              AMOR_BETA       =SIMP(statut='f',typ='R'),
12395              AMOR_HYST       =SIMP(statut='f',typ='R'),
12396            ),
12397            ELAS_FO         =FACT(statut='f',
12398              regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
12399              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12400              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12401              RHO             =SIMP(statut='f',typ='R'),
12402              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
12403              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
12404              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12405              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12406              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12407              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12408              K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12409              B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12410              FONC_DESORP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12411            ),
12412            ELAS_FLUI       =FACT(statut='f',
12413              E               =SIMP(statut='o',typ='R'),
12414              NU              =SIMP(statut='o',typ='R'),
12415              RHO             =SIMP(statut='o',typ='R'),
12416              PROF_RHO_F_INT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12417              PROF_RHO_F_EXT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12418              COEF_MASS_AJOU  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12419            ),
12420            ELAS_ISTR       =FACT(statut='f',
12421              E_L             =SIMP(statut='o',typ='R'),
12422              E_N             =SIMP(statut='o',typ='R'),
12423              NU_LT           =SIMP(statut='o',typ='R'),
12424              NU_LN           =SIMP(statut='o',typ='R'),
12425              G_LN            =SIMP(statut='o',typ='R'),
12426              RHO             =SIMP(statut='f',typ='R'),
12427              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12428              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12429            ),
12430            ELAS_ISTR_FO    =FACT(statut='f',
12431              regles=(
12432                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
12433                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
12434                     ),
12435              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12436              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12437              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12438              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12439              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12440              RHO             =SIMP(statut='f',typ='R'),
12441              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
12442              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
12443              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12444              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12445            ),
12446            ELAS_ORTH       =FACT(statut='f',
12447              E_L             =SIMP(statut='o',typ='R'),
12448              E_T             =SIMP(statut='o',typ='R'),
12449              E_N             =SIMP(statut='f',typ='R'),
12450              NU_LT           =SIMP(statut='o',typ='R'),
12451              NU_LN           =SIMP(statut='f',typ='R'),
12452              NU_TN           =SIMP(statut='f',typ='R'),
12453              G_LT            =SIMP(statut='o',typ='R'),
12454              G_LN            =SIMP(statut='f',typ='R'),
12455              G_TN            =SIMP(statut='f',typ='R'),
12456              RHO             =SIMP(statut='f',typ='R'),
12457              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12458              ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12459              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12460              XT              =SIMP(statut='f',typ='R',defaut= 1. ),
12461              XC              =SIMP(statut='f',typ='R',defaut= 1. ),
12462              YT              =SIMP(statut='f',typ='R',defaut= 1. ),
12463              YC              =SIMP(statut='f',typ='R',defaut= 1. ),
12464              S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
12465              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
12466              AMOR_BETA       =SIMP(statut='f',typ='R'),
12467              AMOR_HYST       =SIMP(statut='f',typ='R'),
12468            ),
12469            ELAS_ORTH_FO    =FACT(statut='f',
12470              regles=(
12471                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
12472                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
12473                       PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
12474                     ),
12475              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12476              E_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12477              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12478              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12479              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12480              NU_TN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12481              G_LT            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12482              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12483              G_TN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12484              RHO             =SIMP(statut='f',typ='R'),
12485              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
12486              PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
12487              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12488              ALPHA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12489              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12490              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12491              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12492              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12493            ),
12494            ELAS_HYPER      =FACT(statut='f',
12495                                  regles=(UN_PARMI('K','NU'),),
12496              C10             =SIMP(statut='o',typ='R',
12497                                    fr="Si C10 est le seul coefficient fourni, alors le matériau est Néo-Hookéen."),
12498              C01             =SIMP(statut='f',typ='R',defaut=0.0,
12499                                    fr="Si l'on fournit C01 en plus de C10, on obtient un matériau de type Mooney-Rivlin."),
12500              C20             =SIMP(statut='f',typ='R',defaut=0.0,
12501                                    fr="Si l'on fournit C20 en plus de C10 et C01, on obtient un matériau de type Signorini."),
12502              K               =SIMP(statut='f',typ='R',fr="Module de compressibilité."),
12503              NU              =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0,fr="Coefficient de Poisson."),
12504              RHO             =SIMP(statut='f',typ='R',defaut=0.0,fr="Masse volumique."),
12505            ),
12506            ELAS_COQUE      =FACT(statut='f',
12507              regles=(EXCLUS('MEMB_L','M_LLLL',),
12508                      PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
12509                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
12510                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
12511                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
12512                                      'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
12513                                      'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
12514                                      'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
12515                                      'C_LZTZ','C_TZTZ'),),
12516              MEMB_L          =SIMP(statut='f',typ='R'),
12517              MEMB_LT         =SIMP(statut='f',typ='R'),
12518              MEMB_T          =SIMP(statut='f',typ='R'),
12519              MEMB_G_LT       =SIMP(statut='f',typ='R'),
12520              FLEX_L          =SIMP(statut='f',typ='R'),
12521              FLEX_LT         =SIMP(statut='f',typ='R'),
12522              FLEX_T          =SIMP(statut='f',typ='R'),
12523              FLEX_G_LT       =SIMP(statut='f',typ='R'),
12524              CISA_L          =SIMP(statut='f',typ='R'),
12525              CISA_T          =SIMP(statut='f',typ='R'),
12526              M_LLLL          =SIMP(statut='f',typ='R'),
12527              M_LLTT          =SIMP(statut='f',typ='R'),
12528              M_LLLT          =SIMP(statut='f',typ='R'),
12529              M_TTTT          =SIMP(statut='f',typ='R'),
12530              M_TTLT          =SIMP(statut='f',typ='R'),
12531              M_LTLT          =SIMP(statut='f',typ='R'),
12532              F_LLLL          =SIMP(statut='f',typ='R'),
12533              F_LLTT          =SIMP(statut='f',typ='R'),
12534              F_LLLT          =SIMP(statut='f',typ='R'),
12535              F_TTTT          =SIMP(statut='f',typ='R'),
12536              F_TTLT          =SIMP(statut='f',typ='R'),
12537              F_LTLT          =SIMP(statut='f',typ='R'),
12538              MF_LLLL         =SIMP(statut='f',typ='R'),
12539              MF_LLTT         =SIMP(statut='f',typ='R'),
12540              MF_LLLT         =SIMP(statut='f',typ='R'),
12541              MF_TTTT         =SIMP(statut='f',typ='R'),
12542              MF_TTLT         =SIMP(statut='f',typ='R'),
12543              MF_LTLT         =SIMP(statut='f',typ='R'),
12544              MC_LLLZ         =SIMP(statut='f',typ='R'),
12545              MC_LLTZ         =SIMP(statut='f',typ='R'),
12546              MC_TTLZ         =SIMP(statut='f',typ='R'),
12547              MC_TTTZ         =SIMP(statut='f',typ='R'),
12548              MC_LTLZ         =SIMP(statut='f',typ='R'),
12549              MC_LTTZ         =SIMP(statut='f',typ='R'),
12550              FC_LLLZ         =SIMP(statut='f',typ='R'),
12551              FC_LLTZ         =SIMP(statut='f',typ='R'),
12552              FC_TTLZ         =SIMP(statut='f',typ='R'),
12553              FC_TTTZ         =SIMP(statut='f',typ='R'),
12554              FC_LTLZ         =SIMP(statut='f',typ='R'),
12555              FC_LTTZ         =SIMP(statut='f',typ='R'),
12556              C_LZLZ          =SIMP(statut='f',typ='R'),
12557              C_LZTZ          =SIMP(statut='f',typ='R'),
12558              C_TZTZ          =SIMP(statut='f',typ='R'),
12559              RHO             =SIMP(statut='f',typ='R'),
12560              ALPHA           =SIMP(statut='f',typ='R'),
12561            ),
12562            ELAS_COQUE_FO   =FACT(statut='f',
12563              regles=(EXCLUS('MEMB_L','M_LLLL',),
12564                      PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
12565                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
12566                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
12567                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
12568                                      'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
12569                                      'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
12570                                      'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
12571              MEMB_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12572              MEMB_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12573              MEMB_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12574              MEMB_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12575              FLEX_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12576              FLEX_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12577              FLEX_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12578              FLEX_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12579              CISA_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12580              CISA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12581              M_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12582              M_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12583              M_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12584              M_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12585              M_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12586              M_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12587              F_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12588              F_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12589              F_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12590              F_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12591              F_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12592              F_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12593              MF_LLLL         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12594              MF_LLTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12595              MF_LLLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12596              MF_TTTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12597              MF_TTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12598              MF_LTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12599              MC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12600              MC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12601              MC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12602              MC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12603              MC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12604              MC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12605              FC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12606              FC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12607              FC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12608              FC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12609              FC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12610              FC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12611              C_LZLZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12612              C_LZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12613              C_TZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12614              RHO             =SIMP(statut='f',typ='R'),
12615              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12616            ),
12617            ELAS_2NDG        =FACT(statut='f',
12618              A1              =SIMP(statut='o',typ='R'),
12619              A2              =SIMP(statut='f',typ='R'),
12620              A3              =SIMP(statut='f',typ='R'),
12621              A4              =SIMP(statut='f',typ='R'),
12622              A5              =SIMP(statut='f',typ='R'),
12623            ),
12624            CABLE           =FACT(statut='f',
12625              EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
12626            ),
12627 #
12628 # comportement mécanique non linéaire
12629 #
12630            TRACTION        =FACT(statut='f',
12631              SIGM            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12632            ),
12633            ECRO_LINE       =FACT(statut='f',
12634              D_SIGM_EPSI     =SIMP(statut='o',typ='R',),
12635              SY              =SIMP(statut='o',typ='R',),
12636            ),
12637            ENDO_HETEROGENE   =FACT(statut='f',
12638              WEIBULL         =SIMP(statut='o',typ='R',),
12639              SY              =SIMP(statut='o',typ='R',),
12640              KI              =SIMP(statut='o',typ='R',),
12641              EPAI            =SIMP(statut='o',typ='R',),
12642              GR              =SIMP(statut='f',typ='R',defaut= 1.0),
12643            ),
12644            ECRO_LINE_FO    =FACT(statut='f',
12645              D_SIGM_EPSI     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12646              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12647            ),
12648            ECRO_PUIS       =FACT(statut='f',
12649              SY              =SIMP(statut='o',typ='R',),
12650              A_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
12651              N_PUIS          =SIMP(statut='o',typ='R',val_min=1.E-6),
12652            ),
12653            ECRO_PUIS_FO    =FACT(statut='f',
12654              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12655              A_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12656              N_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12657            ),
12658            BETON_ECRO_LINE =FACT(statut='f',
12659              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
12660              SYT             =SIMP(statut='o',typ='R'),
12661              SYC             =SIMP(statut='f',typ='R'),
12662            ),
12663            BETON_REGLE_PR =FACT(statut='f',
12664              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
12665              SYT             =SIMP(statut='o',typ='R'),
12666              SYC             =SIMP(statut='f',typ='R'),
12667              EPSC            =SIMP(statut='f',typ='R'),
12668              N               =SIMP(statut='f',typ='R'),
12669            ),
12670            ENDO_ORTH_BETON  =FACT(statut='f',
12671              ALPHA            =SIMP(statut='f',typ='R',defaut=0.9),
12672              K0               =SIMP(statut='o',typ='R'),
12673              K1               =SIMP(statut='o',typ='R'),
12674              K2               =SIMP(statut='f',typ='R',defaut=7.E-4),
12675              ECROB            =SIMP(statut='o',typ='R'),
12676              ECROD            =SIMP(statut='o',typ='R'),
12677            ),
12678            PRAGER          =FACT(statut='f',
12679              C               =SIMP(statut='o',typ='R'),
12680            ),
12681            PRAGER_FO       =FACT(statut='f',
12682              C               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12683            ),
12684            ECRO_FLEJOU     =FACT(statut='f',
12685              EP              =SIMP(statut='o',typ='R'),
12686              SY              =SIMP(statut='o',typ='R'),
12687              SU              =SIMP(statut='o',typ='R'),
12688              PUISS           =SIMP(statut='o',typ='R'),
12689            ),
12690            TAHERI          =FACT(statut='f',
12691              R_0             =SIMP(statut='o',typ='R'),
12692              ALPHA           =SIMP(statut='o',typ='R'),
12693              M               =SIMP(statut='o',typ='R'),
12694              A               =SIMP(statut='o',typ='R'),
12695              B               =SIMP(statut='o',typ='R'),
12696              C1              =SIMP(statut='o',typ='R'),
12697              C_INF           =SIMP(statut='o',typ='R'),
12698              S               =SIMP(statut='o',typ='R'),
12699            ),
12700            TAHERI_FO       =FACT(statut='f',
12701              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12702              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12703              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12704              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12705              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12706              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12707              C_INF           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12708              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12709            ),
12710            ROUSSELIER      =FACT(statut='f',
12711              D               =SIMP(statut='o',typ='R'),
12712              SIGM_1          =SIMP(statut='o',typ='R'),
12713              PORO_INIT       =SIMP(statut='o',typ='R'),
12714              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
12715              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
12716              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
12717              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
12718              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
12719              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
12720              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
12721            ),
12722            ROUSSELIER_FO   =FACT(statut='f',
12723              D               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12724              SIGM_1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12725              PORO_INIT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12726              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
12727              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
12728              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
12729              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
12730              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
12731              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
12732              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
12733            ),
12734            VISC_SINH      =FACT(statut='f',
12735              SIGM_0          =SIMP(statut='o',typ='R'),
12736              EPSI_0          =SIMP(statut='o',typ='R'),
12737              M               =SIMP(statut='o',typ='R'),
12738            ),
12739            VISC_SINH_FO      =FACT(statut='f',
12740              SIGM_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12741              EPSI_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12742              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12743            ),
12744            CIN1_CHAB  =FACT(statut='f',
12745              R_0             =SIMP(statut='o',typ='R'),
12746              R_I             =SIMP(statut='f',typ='R'),
12747              B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
12748              C_I             =SIMP(statut='o',typ='R'),
12749              K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
12750              W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
12751              G_0             =SIMP(statut='o',typ='R'),
12752              A_I             =SIMP(statut='f',typ='R',defaut= 1.0E+0),
12753            ),
12754            CIN1_CHAB_FO  =FACT(statut='f',
12755              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12756              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12757              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12758              C_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12759              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12760              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12761              G_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12762              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12763            ),
12764            CIN2_CHAB  =FACT(statut='f',
12765              R_0             =SIMP(statut='o',typ='R'),
12766              R_I             =SIMP(statut='f',typ='R'),
12767              B               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12768              C1_I            =SIMP(statut='o',typ='R'),
12769              C2_I            =SIMP(statut='o',typ='R'),
12770              K               =SIMP(statut='f',typ='R',defaut= 1.),
12771              W               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12772              G1_0            =SIMP(statut='o',typ='R'),
12773              G2_0            =SIMP(statut='o',typ='R'),
12774              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12775            ),
12776            CIN2_CHAB_FO  =FACT(statut='f',
12777              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12778              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12779              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12780              C1_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12781              C2_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12782              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12783              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12784              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12785              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12786              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12787            ),
12788            MEMO_ECRO       =FACT(statut='f',
12789              MU              =SIMP(statut='o',typ='R'),
12790              Q_M             =SIMP(statut='o',typ='R'),
12791              Q_0             =SIMP(statut='o',typ='R'),
12792              ETA             =SIMP(statut='f',typ='R',defaut= 0.5E+0 ),
12793            ),
12794            MEMO_ECRO_FO        =FACT(statut='f',
12795              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12796              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12797              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12798              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12799            ),
12800            VISCOCHAB       =FACT(statut='f',
12801              K_0             =SIMP(statut='o',typ='R'),
12802              A_K             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12803              A_R             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12804              K               =SIMP(statut='o',typ='R'),
12805              N               =SIMP(statut='o',typ='R'),
12806              ALP             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12807              B               =SIMP(statut='f',typ='R'),
12808              M_R             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12809              G_R             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12810              MU              =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
12811              Q_M             =SIMP(statut='o',typ='R'),
12812              Q_0             =SIMP(statut='o',typ='R'),
12813              QR_0            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12814              ETA             =SIMP(statut='f',typ='R',defaut= 0.5E+0 ),
12815              C1              =SIMP(statut='o',typ='R'),
12816              M_1             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12817              D1              =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12818              G_X1            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12819              G1_0            =SIMP(statut='o',typ='R'),
12820              C2              =SIMP(statut='o',typ='R'),
12821              M_2             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12822              D2              =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12823              G_X2            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12824              G2_0            =SIMP(statut='o',typ='R'),
12825              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
12826            ),
12827            VISCOCHAB_FO    =FACT(statut='f',
12828              K_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12829              A_K             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12830              A_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12831              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12832              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12833              ALP             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12834              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12835              M_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12836              G_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12837              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12838              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12839              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12840              QR_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12841              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12842              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12843              M_1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12844              D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12845              G_X1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12846              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12847              C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12848              M_2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12849              D2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12850              G_X2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12851              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12852              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12853            ),
12854            LEMAITRE        =FACT(statut='f',
12855              N               =SIMP(statut='o',typ='R'),
12856              UN_SUR_K        =SIMP(statut='o',typ='R'),
12857              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12858            ),
12859            LEMAITRE_IRRA    =FACT(statut='f',
12860              N               =SIMP(statut='o',typ='R'),
12861              UN_SUR_K        =SIMP(statut='o',typ='R'),
12862              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12863              QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12864              BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12865              PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
12866              L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12867              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12868              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12869              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12870            ),
12871            LMARC_IRRA       =FACT(statut='f',
12872              DE_0            =SIMP(statut='o',typ='R'),
12873              R_0             =SIMP(statut='o',typ='R'),
12874              N               =SIMP(statut='o',typ='R'),
12875              K               =SIMP(statut='o',typ='R'),
12876              Y_I             =SIMP(statut='o',typ='R'),
12877              Y_0             =SIMP(statut='o',typ='R'),
12878              B               =SIMP(statut='o',typ='R'),
12879              A_0             =SIMP(statut='o',typ='R'),
12880              RM              =SIMP(statut='o',typ='R'),
12881              M               =SIMP(statut='o',typ='R'),
12882              P               =SIMP(statut='o',typ='R'),
12883              P1              =SIMP(statut='o',typ='R'),
12884              P2              =SIMP(statut='o',typ='R'),
12885              M11             =SIMP(statut='o',typ='R'),
12886              M22             =SIMP(statut='o',typ='R'),
12887              M33             =SIMP(statut='o',typ='R'),
12888              M66             =SIMP(statut='o',typ='R'),
12889              N11             =SIMP(statut='o',typ='R'),
12890              N22             =SIMP(statut='o',typ='R'),
12891              N33             =SIMP(statut='o',typ='R'),
12892              N66             =SIMP(statut='o',typ='R'),
12893              Q11             =SIMP(statut='o',typ='R'),
12894              Q22             =SIMP(statut='o',typ='R'),
12895              Q33             =SIMP(statut='o',typ='R'),
12896              Q66             =SIMP(statut='o',typ='R'),
12897              R11             =SIMP(statut='o',typ='R'),
12898              R22             =SIMP(statut='o',typ='R'),
12899              R33             =SIMP(statut='o',typ='R'),
12900              R66             =SIMP(statut='o',typ='R'),
12901              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12902              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12903              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
12904            ),
12905           VISC_IRRA_LOG    =FACT(statut='f',
12906              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
12907              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
12908              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
12909              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
12910              FLUX_PHI        =SIMP(statut='o',typ='R',),
12911            ),
12912           GRAN_IRRA_LOG    =FACT(statut='f',
12913              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
12914              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
12915              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
12916              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
12917              FLUX_PHI        =SIMP(statut='o',typ='R',),
12918              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0),
12919              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0),
12920              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0),
12921            ),
12922           LEMA_SEUIL   =FACT(statut='f',
12923              A               =SIMP(statut='o',typ='R',),
12924              S               =SIMP(statut='o',typ='R',),
12925            ),
12926           LEMA_SEUIL_FO=FACT(statut='f',
12927              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12928              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12929            ),
12930          IRRAD3M=FACT(statut='f',
12931                R02      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12932                EPSI_U   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12933                RM       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12934                AI0      =SIMP(statut='o',typ='R',val_min=0.0),
12935                ZETA_F   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12936                ETAI_S   =SIMP(statut='o',typ='R',val_min=0.0),
12937                RG0      =SIMP(statut='o',typ='R',val_min=0.0),
12938                ALPHA    =SIMP(statut='o',typ='R',val_min=0.0),
12939                PHI0     =SIMP(statut='o',typ='R',val_min=0.0),
12940                KAPPA    =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0),
12941                ZETA_G   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12942                TOLER_ET =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.15 ),
12943          ),
12944            LEMAITRE_FO     =FACT(statut='f',
12945              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12946              UN_SUR_K        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12947              UN_SUR_M        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12948            ),
12949              META_LEMA_ANI     =FACT(statut='f',
12950              F1_A            =SIMP(statut='o',typ='R'),
12951              F2_A            =SIMP(statut='o',typ='R'),
12952              C_A             =SIMP(statut='o',typ='R'),
12953              F1_M            =SIMP(statut='o',typ='R'),
12954              F2_M            =SIMP(statut='o',typ='R'),
12955              C_M             =SIMP(statut='o',typ='R'),
12956              F1_N            =SIMP(statut='o',typ='R'),
12957              F2_N            =SIMP(statut='o',typ='R'),
12958              C_N             =SIMP(statut='o',typ='R'),
12959              F1_Q            =SIMP(statut='o',typ='R'),
12960              F2_Q            =SIMP(statut='o',typ='R'),
12961              C_Q             =SIMP(statut='o',typ='R'),
12962              F_MRR_RR        =SIMP(statut='o',typ='R'),
12963              C_MRR_RR        =SIMP(statut='o',typ='R'),
12964              F_MTT_TT        =SIMP(statut='o',typ='R'),
12965              C_MTT_TT        =SIMP(statut='o',typ='R'),
12966              F_MZZ_ZZ        =SIMP(statut='o',typ='R'),
12967              C_MZZ_ZZ        =SIMP(statut='o',typ='R'),
12968              F_MRT_RT        =SIMP(statut='o',typ='R'),
12969              C_MRT_RT        =SIMP(statut='o',typ='R'),
12970              F_MRZ_RZ        =SIMP(statut='o',typ='R'),
12971              C_MRZ_RZ        =SIMP(statut='o',typ='R'),
12972              F_MTZ_TZ        =SIMP(statut='o',typ='R'),
12973              C_MTZ_TZ        =SIMP(statut='o',typ='R'),
12974            ),
12975              META_LEMA_ANI_FO  =FACT(statut='f',
12976              F1_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12977              F2_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12978              C_A             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12979              F1_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12980              F2_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12981              C_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12982              F1_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12983              F2_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12984              C_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12985              F1_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12986              F2_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12987              C_Q             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12988              F_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12989              C_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12990              F_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12991              C_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12992              F_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12993              C_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12994              F_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12995              C_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12996              F_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12997              C_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12998              F_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12999              C_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13000            ),
13001            VMIS_POUTRE     =FACT(statut='f',
13002              NP              =SIMP(statut='o',typ='R'),
13003              MEY             =SIMP(statut='o',typ='R'),
13004              MPY             =SIMP(statut='o',typ='R'),
13005              CAY             =SIMP(statut='o',typ='R'),
13006              CBY             =SIMP(statut='o',typ='R'),
13007              MEZ             =SIMP(statut='o',typ='R'),
13008              MPZ             =SIMP(statut='o',typ='R'),
13009              CAZ             =SIMP(statut='o',typ='R'),
13010              CBZ             =SIMP(statut='o',typ='R'),
13011              MPX             =SIMP(statut='o',typ='R'),
13012            ),
13013            VMIS_POUTRE_FO  =FACT(statut='f',
13014              NP              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13015              MEY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13016              MPY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13017              CAY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13018              CBY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13019              MEZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13020              MPZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13021              CAZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13022              CBZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13023              MPX             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13024            ),
13025            ARME            =FACT(statut='f',
13026              KYE             =SIMP(statut='o',typ='R'),
13027              DLE             =SIMP(statut='o',typ='R'),
13028              KYP             =SIMP(statut='o',typ='R'),
13029              DLP             =SIMP(statut='o',typ='R'),
13030              KYG             =SIMP(statut='o',typ='R'),
13031            ),
13032            ASSE_CORN       =FACT(statut='f',
13033              NU_1            =SIMP(statut='o',typ='R'),
13034              MU_1            =SIMP(statut='o',typ='R'),
13035              DXU_1           =SIMP(statut='o',typ='R'),
13036              DRYU_1          =SIMP(statut='o',typ='R'),
13037              C_1             =SIMP(statut='o',typ='R'),
13038              NU_2            =SIMP(statut='o',typ='R'),
13039              MU_2            =SIMP(statut='o',typ='R'),
13040              DXU_2           =SIMP(statut='o',typ='R'),
13041              DRYU_2          =SIMP(statut='o',typ='R'),
13042              C_2             =SIMP(statut='o',typ='R'),
13043              KY              =SIMP(statut='o',typ='R'),
13044              KZ              =SIMP(statut='o',typ='R'),
13045              KRX             =SIMP(statut='o',typ='R'),
13046              KRZ             =SIMP(statut='o',typ='R'),
13047              R_P0            =SIMP(statut='f',typ='R',defaut= 1.E+4 ),
13048            ),
13049            DIS_CONTACT     =FACT(statut='f',
13050              RIGI_NOR        =SIMP(statut='f',typ='R' ),
13051              RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13052              AMOR_NOR        =SIMP(statut='f',typ='R' ),
13053              AMOR_TAN        =SIMP(statut='f',typ='R' ),
13054              COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13055              DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13056              DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13057              JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13058            ),
13059            ENDO_SCALAIRE   =FACT(statut='f',
13060              GAMMA           =SIMP(statut='o',typ='R',),
13061              SY              =SIMP(statut='o',typ='R',),
13062              COEF_RIGI_MINI  =SIMP(statut='f',typ='R',defaut=1.E-5),
13063              DD_MAXI         =SIMP(statut='f',typ='R',defaut= 1.),
13064            ),
13065            DIS_GRICRA    =FACT(statut='f',
13066              KN_AX       =SIMP(statut='o',typ='R' ),
13067              KT_AX       =SIMP(statut='o',typ='R' ),
13068              COUL_AX     =SIMP(statut='o',typ='R' ),
13069              F_SER       =SIMP(statut='f',typ='R' ),
13070              F_SER_FO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13071              ET_AX       =SIMP(statut='f',typ='R',defaut=1.e-7 ),
13072              ET_ROT      =SIMP(statut='f',typ='R',defaut=1.e-7 ),
13073              ANG1        =SIMP(statut='f',typ='R' ),
13074              ANG2        =SIMP(statut='f',typ='R' ),
13075              PEN1        =SIMP(statut='f',typ='R' ),
13076              PEN2        =SIMP(statut='f',typ='R' ),
13077              PEN3        =SIMP(statut='f',typ='R' ),
13078              ANG1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13079              ANG2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13080              PEN1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13081              PEN2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13082              PEN3_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13083              regles=(EXCLUS('ANG1','ANG1_FO',),
13084                      UN_PARMI('ANG1','ANG1_FO',),
13085                      EXCLUS('F_SER','F_SER_FO',),
13086                      UN_PARMI('F_SER','F_SER_FO',),
13087                      PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',),
13088                      PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',),
13089                                      ),
13090            ),
13091            BETON_DOUBLE_DP =FACT(statut='f',
13092              F_C             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13093              F_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13094              COEF_BIAX       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13095              ENER_COMP_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13096              ENER_TRAC_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13097              COEF_ELAS_COMP  =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=100.E+0),
13098              LONG_CARA       =SIMP(statut='f',typ='R',val_min=0.E+0),
13099              ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
13100              ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
13101            ),
13102            LABORD_1D=FACT(statut='f',min=0 ,
13103              Y01             =SIMP(statut='o',typ='R'),
13104              Y02             =SIMP(statut='o',typ='R'),
13105              A1              =SIMP(statut='o',typ='R'),
13106              A2              =SIMP(statut='o',typ='R'),
13107              B1              =SIMP(statut='o',typ='R'),
13108              B2              =SIMP(statut='o',typ='R'),
13109              BETA1           =SIMP(statut='o',typ='R'),
13110              BETA2           =SIMP(statut='o',typ='R'),
13111              SIGF            =SIMP(statut='o',typ='R'),
13112            ),
13113          MAZARS=FACT(statut='f',min=0 ,
13114              EPSD0           =SIMP(statut='o',typ='R'),
13115              BETA            =SIMP(statut='o',typ='R'),
13116              AC              =SIMP(statut='o',typ='R'),
13117              BC              =SIMP(statut='o',typ='R'),
13118              AT              =SIMP(statut='o',typ='R'),
13119              BT              =SIMP(statut='o',typ='R'),
13120              CHI             =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0),
13121            ),
13122          MAZARS_FO=FACT(statut='f',min=0 ,
13123              EPSD0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13124              BETA            =SIMP(statut='o',typ='R'),
13125              AC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13126              BC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13127              AT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13128              BT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13129              CHI             =SIMP(statut='f',typ='R'),
13130            ),
13131          JOINT_BA=FACT(statut='f',min=0 ,max=1,
13132              HPEN            =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
13133              GTT             =SIMP(statut='o',typ='R',val_min=0.E+0),
13134              GAMD0           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1),
13135              AD1             =SIMP(statut='o',typ='R',val_min=0.E+0),
13136              BD1             =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1),
13137              GAMD2           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
13138              AD2             =SIMP(statut='o',typ='R',val_min=0.E+0),
13139              BD2             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
13140              VIFROT          =SIMP(statut='o',typ='R',val_min=0.E+0),
13141              FA              =SIMP(statut='o',typ='R',val_min=0.E+0),
13142              FC              =SIMP(statut='o',typ='R',val_min=0.E+0),
13143              EPSTR0          =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
13144              ADN             =SIMP(statut='o',typ='R',val_min=0.E+0),
13145              BDN             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
13146            ),
13147           VENDOCHAB       =FACT(statut='f',
13148              SY              =SIMP(statut='o',typ='R',defaut= 0.E+0),
13149              ALPHA_D         =SIMP(statut='o',typ='R',defaut= 0.E+0),
13150              BETA_D          =SIMP(statut='o',typ='R',defaut= 0.E+0),
13151              R_D             =SIMP(statut='o',typ='R'),
13152              A_D             =SIMP(statut='o',typ='R'),
13153              K_D             =SIMP(statut='o',typ='R'),
13154            ),
13155            VENDOCHAB_FO    =FACT(statut='f',
13156              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13157              ALPHA_D         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13158              BETA_D          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13159              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13160              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13161              K_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13162            ),
13163            VISC_ENDO      =FACT(statut='f',
13164              SY              =SIMP(statut='o',typ='R',defaut= 0.E+0),
13165              R_D             =SIMP(statut='o',typ='R'),
13166              A_D             =SIMP(statut='o',typ='R'),
13167            ),
13168            VISC_ENDO_FO   =FACT(statut='f',
13169              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13170              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13171              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13172            ),
13173            PINTO_MENEGOTTO =FACT(statut='f',
13174              SY              =SIMP(statut='o',typ='R'),
13175              EPSI_ULTM       =SIMP(statut='o',typ='R'),
13176              SIGM_ULTM       =SIMP(statut='o',typ='R'),
13177              ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
13178              EPSP_HARD       =SIMP(statut='o',typ='R'),
13179              R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
13180              EP_SUR_E        =SIMP(statut='f',typ='R'),
13181              A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
13182              A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
13183              A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
13184              C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
13185              A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
13186            ),
13187            BPEL_BETON      =FACT(statut='f',
13188              PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13189              PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13190            ),
13191            BPEL_ACIER      =FACT(statut='f',
13192             regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),
13193                      PRESENT_PRESENT('MU0_RELAX','F_PRG',),),
13194              RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13195              MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13196              F_PRG           =SIMP(statut='f',typ='R'),
13197              FROT_COURB      =SIMP(statut='f',typ='R',defaut=0.E+0),
13198              FROT_LINE       =SIMP(statut='f',typ='R',defaut=0.E+0),
13199            ),
13200            CAM_CLAY      =FACT(statut='f',
13201              MU              =SIMP(statut='o',typ='R'),
13202              PORO            =SIMP(statut='o',typ='R'),
13203              LAMBDA          =SIMP(statut='o',typ='R'),
13204              KAPA            =SIMP(statut='o',typ='R'),
13205              M               =SIMP(statut='o',typ='R'),
13206              PRES_CRIT       =SIMP(statut='o',typ='R'),
13207              KCAM            =SIMP(statut='f',typ='R',val_min=0.E+0),
13208              PTRAC           =SIMP(statut='f',typ='R',val_max=0.E+0),
13209                regles=(PRESENT_PRESENT('PTRAC','KCAM',),),
13210            ),
13211            BARCELONE      =FACT(statut='f',
13212              MU              =SIMP(statut='o',typ='R'),
13213              PORO            =SIMP(statut='o',typ='R'),
13214              LAMBDA          =SIMP(statut='o',typ='R'),
13215              KAPA            =SIMP(statut='o',typ='R'),
13216              M               =SIMP(statut='o',typ='R'),
13217              PRES_CRIT       =SIMP(statut='o',typ='R'),
13218              PA            =SIMP(statut='o',typ='R'),
13219              R             =SIMP(statut='o',typ='R'),
13220              BETA          =SIMP(statut='o',typ='R'),
13221              KC            =SIMP(statut='o',typ='R'),
13222              PC0_INIT      =SIMP(statut='o',typ='R'),
13223              KAPAS         =SIMP(statut='o',typ='R'),
13224              LAMBDAS       =SIMP(statut='o',typ='R'),
13225              ALPHAB        =SIMP(statut='f',typ='R'),
13226            ),
13227            CJS             =FACT(statut='f',
13228              BETA_CJS        =SIMP(statut='o',typ='R'),
13229              RM              =SIMP(statut='o',typ='R'),
13230              N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13231              KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13232              RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13233              A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13234              B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
13235              C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13236              GAMMA_CJS       =SIMP(statut='o',typ='R'),
13237              MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13238              PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13239              PA              =SIMP(statut='o',typ='R'),
13240              Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13241              R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13242            ),
13243            HUJEUX   =FACT(statut='f',
13244              N      =SIMP(statut='o',typ='R' ),
13245              BETA   =SIMP(statut='o',typ='R' ),
13246              B      =SIMP(statut='o',typ='R' ),
13247              D      =SIMP(statut='o',typ='R' ),
13248              PHI    =SIMP(statut='o',typ='R' ),
13249              ANGDIL =SIMP(statut='o',typ='R' ),
13250              PCO    =SIMP(statut='o',typ='R' ),
13251              PREF   =SIMP(statut='o',typ='R' ),
13252              ACYC   =SIMP(statut='o',typ='R' ),
13253              AMON   =SIMP(statut='o',typ='R' ),
13254              CCYC   =SIMP(statut='o',typ='R' ),
13255              CMON   =SIMP(statut='o',typ='R' ),
13256              RD_ELA =SIMP(statut='o',typ='R' ),
13257              RI_ELA =SIMP(statut='o',typ='R' ),
13258              RHYS   =SIMP(statut='o',typ='R' ),
13259              RMOB   =SIMP(statut='o',typ='R' ),
13260              XM     =SIMP(statut='o',typ='R' ),
13261              RD_CYC =SIMP(statut='o',typ='R' ),
13262              RI_CYC =SIMP(statut='o',typ='R' ),
13263              DILA   =SIMP(statut='o',typ='R' ),
13264              PTRAC  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13265            ),
13266            ECRO_ASYM_LINE  =FACT(statut='f',
13267              DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
13268              SY_C            =SIMP(statut='o',typ='R'),
13269              DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
13270              SY_T            =SIMP(statut='o',typ='R'),
13271            ),
13272            GRANGER_FP      =FACT(statut='f',
13273              J1              =SIMP(statut='f',typ='R'),
13274              J2              =SIMP(statut='f',typ='R'),
13275              J3              =SIMP(statut='f',typ='R'),
13276              J4              =SIMP(statut='f',typ='R'),
13277              J5              =SIMP(statut='f',typ='R'),
13278              J6              =SIMP(statut='f',typ='R'),
13279              J7              =SIMP(statut='f',typ='R'),
13280              J8              =SIMP(statut='f',typ='R'),
13281              TAUX_1          =SIMP(statut='f',typ='R'),
13282              TAUX_2          =SIMP(statut='f',typ='R'),
13283              TAUX_3          =SIMP(statut='f',typ='R'),
13284              TAUX_4          =SIMP(statut='f',typ='R'),
13285              TAUX_5          =SIMP(statut='f',typ='R'),
13286              TAUX_6          =SIMP(statut='f',typ='R'),
13287              TAUX_7          =SIMP(statut='f',typ='R'),
13288              TAUX_8          =SIMP(statut='f',typ='R'),
13289              QSR_K           =SIMP(statut='f',typ='R'),
13290            ),
13291            GRANGER_FP_INDT =FACT(statut='f',
13292              J1              =SIMP(statut='f',typ='R'),
13293              J2              =SIMP(statut='f',typ='R'),
13294              J3              =SIMP(statut='f',typ='R'),
13295              J4              =SIMP(statut='f',typ='R'),
13296              J5              =SIMP(statut='f',typ='R'),
13297              J6              =SIMP(statut='f',typ='R'),
13298              J7              =SIMP(statut='f',typ='R'),
13299              J8              =SIMP(statut='f',typ='R'),
13300              TAUX_1          =SIMP(statut='f',typ='R'),
13301              TAUX_2          =SIMP(statut='f',typ='R'),
13302              TAUX_3          =SIMP(statut='f',typ='R'),
13303              TAUX_4          =SIMP(statut='f',typ='R'),
13304              TAUX_5          =SIMP(statut='f',typ='R'),
13305              TAUX_6          =SIMP(statut='f',typ='R'),
13306              TAUX_7          =SIMP(statut='f',typ='R'),
13307              TAUX_8          =SIMP(statut='f',typ='R'),
13308            ),
13309            V_GRANGER_FP    =FACT(statut='f',
13310              QSR_VEIL        =SIMP(statut='f',typ='R'),
13311              FONC_V          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13312            ),
13313            BETON_UMLV_FP   =FACT(statut='f',min=0 ,
13314              K_RS            =SIMP(statut='o',typ='R'),
13315              ETA_RS          =SIMP(statut='o',typ='R'),
13316              K_IS            =SIMP(statut='o',typ='R'),
13317              ETA_IS          =SIMP(statut='o',typ='R'),
13318              K_RD            =SIMP(statut='o',typ='R'),
13319              ETA_RD          =SIMP(statut='o',typ='R'),
13320              ETA_ID          =SIMP(statut='o',typ='R'),
13321              ETA_FD          =SIMP(statut='f',typ='R'),
13322            ),
13323            BETON_RAG    =FACT(statut='f',
13324              ACTIV_FL        =SIMP(statut='f',typ='R',defaut=1.0 ),
13325              K_RS            =SIMP(statut='o',typ='R'),
13326              K_IS            =SIMP(statut='o',typ='R'),
13327              ETA_RS          =SIMP(statut='o',typ='R'),
13328              ETA_IS          =SIMP(statut='o',typ='R'),
13329              K_RD            =SIMP(statut='o',typ='R'),
13330              K_ID            =SIMP(statut='o',typ='R'),
13331              ETA_RD          =SIMP(statut='o',typ='R'),
13332              ETA_ID          =SIMP(statut='o',typ='R'),
13333              EPS_0           =SIMP(statut='o',typ='R'),
13334              TAU_0           =SIMP(statut='o',typ='R'),
13335              EPS_FL_L        =SIMP(statut='f',typ='R',defaut=3.0e-2 ),
13336              ACTIV_LO        =SIMP(statut='f',typ='R',defaut=1.0 ),
13337              F_C             =SIMP(statut='o',typ='R'),
13338              F_T             =SIMP(statut='o',typ='R'),
13339              ANG_CRIT        =SIMP(statut='f',typ='R',defaut=8.594367 ),
13340              EPS_COMP        =SIMP(statut='o',typ='R'),
13341              EPS_TRAC        =SIMP(statut='o',typ='R'),
13342              LC_COMP         =SIMP(statut='o',typ='R',defaut=1.0  ),
13343              LC_TRAC         =SIMP(statut='o',typ='R',defaut=1.0  ),
13344              HYD_PRES        =SIMP(statut='f',typ='R',defaut=0.   ),
13345              A_VAN_GE        =SIMP(statut='f',typ='R',defaut=0.0  ),
13346              B_VAN_GE        =SIMP(statut='f',typ='R',defaut=1.9  ),
13347              BIOT_EAU        =SIMP(statut='o',typ='R',defaut=0.3  ),
13348              MODU_EAU        =SIMP(statut='o',typ='R',defaut=0.0  ),
13349              W_EAU_0         =SIMP(statut='o',typ='R'),
13350              BIOT_GEL        =SIMP(statut='o',typ='R'),
13351              MODU_GEL        =SIMP(statut='o',typ='R'),
13352              VOL_GEL         =SIMP(statut='o',typ='R'),
13353              AVANC_LI        =SIMP(statut='o',typ='R'),
13354              SEUIL_SR        =SIMP(statut='o',typ='R'),
13355              PARA_CIN        =SIMP(statut='o',typ='R'),
13356              ENR_AC_G        =SIMP(statut='o',typ='R'),
13357            ),
13358            GLRC_DM         =FACT(statut='f',min=0,max=1,
13359              regles=(EXCLUS('GAMMA_C','SYC'),),
13360              GAMMA_T         =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
13361              GAMMA_C         =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=1.E+0),
13362              GAMMA_F         =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
13363              SYT             =SIMP(statut='o',typ='R',val_min=0.E+0),
13364              SYC             =SIMP(statut='f',typ='R'),
13365              SYF             =SIMP(statut='o',typ='R',val_min=0.E+0),
13366              EF              =SIMP(statut='f',typ='R',val_min=0.E+0),
13367              NUF             =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0),
13368            ),
13369            GATT_MONERIE    =FACT(statut='f',min=0,max=1,
13370              D_GRAIN         =SIMP(statut='o',typ='R',val_min=0.E+0),
13371              PORO_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0),
13372              EPSI_01         =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0),
13373              EPSI_02         =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0),
13374            ),
13375            CORR_ACIER   =FACT(statut='f',min=0 ,max=1,
13376              D_CORR           =SIMP(statut='o',typ='R'),
13377              ECRO_K           =SIMP(statut='o',typ='R'),
13378              ECRO_M           =SIMP(statut='o',typ='R'),
13379              SY              =SIMP(statut='o',typ='R'),
13380              ),
13381 # Discrets non-linéaires : début
13382          DIS_ECRO_CINE  =FACT(statut='f',
13383             fr="Loi pour les discrets avec écrouissage cinématique.",
13384             regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',),
13385                     PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',),
13386                     PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',),
13387                     PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',),
13388                     PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',),
13389                     PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),),
13390             LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0,
13391                fr="Effort limite élastique suivant l'axe local x de l'élément."),
13392             LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0,
13393                fr="Effort limite élastique suivant l'axe local y de l'élément."),
13394             LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
13395                fr="Effort limite élastique suivant l'axe local z de l'élément."),
13396             LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0,
13397                fr="Moment limite élastique suivant l'axe local x de l'élément."),
13398             LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0,
13399                fr="Moment limite élastique suivant l'axe local y de l'élément."),
13400             LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
13401                fr="Moment limite élastique suivant l'axe local z de l'élément."),
13402             KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0,
13403                fr="Raideur suivant l'axe local x de l'élément."),
13404             KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0,
13405                fr="Raideur suivant l'axe local y de l'élément."),
13406             KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
13407                fr="Raideur suivant l'axe local z de l'élément."),
13408             KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0,
13409                fr="Raideur suivant l'axe local Rx de l'élément."),
13410             KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0,
13411                fr="Raideur suivant l'axe local Ry de l'élément."),
13412             KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
13413                fr="Raideur suivant l'axe local Rz de l'élément."),
13414             LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0,
13415                fr="Effort limite suivant l'axe local x de l'élément."),
13416             LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0,
13417                fr="Effort limite suivant l'axe local y de l'élément."),
13418             LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
13419                fr="Effort limite suivant l'axe local z de l'élément."),
13420             LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0,
13421                fr="Moment limite suivant l'axe local x de l'élément."),
13422             LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0,
13423                fr="Moment limite suivant l'axe local y de l'élément."),
13424             LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
13425                fr="Moment limite suivant l'axe local z de l'élément."),
13426             PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0,
13427                fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."),
13428             PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0,
13429                fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."),
13430             PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0,
13431                fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."),
13432             PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0,
13433                fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."),
13434             PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0,
13435                fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."),
13436             PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0,
13437                fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."),
13438          ),
13439          DIS_VISC  =FACT(statut='f',
13440             fr="Loi pour un discret de type amortisseur visqueux.",
13441             regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',),
13442                     PRESENT_PRESENT('PUIS_DY','COEF_DY',),
13443                     PRESENT_PRESENT('PUIS_DZ','COEF_DZ',),
13444                     PRESENT_PRESENT('PUIS_RX','COEF_RX',),
13445                     PRESENT_PRESENT('PUIS_RY','COEF_RY',),
13446                     PRESENT_PRESENT('PUIS_RZ','COEF_RZ',),
13447                     ),
13448             PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0,
13449                fr="Puissance dans la direction locale Dx de l'élément."),
13450             PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0,
13451                fr="Puissance dans la direction locale Dy de l'élément."),
13452             PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
13453                fr="Puissance dans la direction locale Dz de l'élément."),
13454             PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0,
13455                fr="Puissance autour de la direction locale Rx de l'élément."),
13456             PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0,
13457                fr="Puissance autour de la direction locale Ry de l'élément."),
13458             PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
13459                fr="Puissance autour de la direction locale Rz de l'élément."),
13460             COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0,
13461                fr="Coefficient C dans la direction locale Dx de l'élément."),
13462             COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0,
13463                fr="Coefficient C dans la direction locale Dy de l'élément."),
13464             COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
13465                fr="Coefficient C dans la direction locale Dz de l'élément."),
13466             COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0,
13467                fr="Coefficient C autour de la direction locale Rx de l'élément."),
13468             COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0,
13469                fr="Coefficient C autour de la direction locale Ry de l'élément."),
13470             COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
13471                fr="Coefficient C autour de la direction locale Rz de l'élément."),
13472          ),
13473          DIS_BILI_ELAS  =FACT(statut='f',
13474             fr="Loi bi-linéaire pour les discrets.",
13475             regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',),
13476                     PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',),
13477                     PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),),
13478             KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13479                fr="Raideur début suivant l'axe local x de l'élément."),
13480             KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13481                fr="Raideur début suivant l'axe local y de l'élément."),
13482             KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13483                fr="Raideur début  suivant l'axe local z de l'élément."),
13484             KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13485                fr="Raideur fin l'axe local x de l'élément."),
13486             KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13487                fr="Raideur fin l'axe local y de l'élément."),
13488             KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
13489                fr="Raideur fin l'axe local z de l'élément."),
13490             FPRE_DX =SIMP(statut='f',typ='R',
13491                fr="Effort de préserrage suivant l'axe local x de l'élément."),
13492             FPRE_DY =SIMP(statut='f',typ='R',
13493                fr="Effort de préserrage suivant l'axe local y de l'élément."),
13494             FPRE_DZ =SIMP(statut='f',typ='R',
13495                fr="Effort de préserrage suivant l'axe local z de l'élément."),
13496          ),
13497 # Discrets non-linéaires : fin
13498 #
13499 # comportement thermique
13500 #
13501            THER_NL         =FACT(statut='f',
13502              regles=(UN_PARMI('BETA','RHO_CP', ),),
13503              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13504              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13505              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13506            ),
13507            THER_HYDR       =FACT(statut='f',
13508              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13509              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13510              AFFINITE        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13511              CHALHYDR        =SIMP(statut='o',typ='R'),
13512            ),
13513            THER            =FACT(statut='f',
13514              LAMBDA          =SIMP(statut='o',typ='R'),
13515              RHO_CP          =SIMP(statut='f',typ='R'),
13516            ),
13517            THER_FO         =FACT(statut='f',
13518              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13519              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13520            ),
13521            THER_ORTH       =FACT(statut='f',
13522              LAMBDA_L        =SIMP(statut='o',typ='R'),
13523              LAMBDA_T        =SIMP(statut='o',typ='R'),
13524              LAMBDA_N        =SIMP(statut='f',typ='R'),
13525              RHO_CP          =SIMP(statut='f',typ='R'),
13526            ),
13527            THER_COQUE      =FACT(statut='f',
13528              COND_LMM        =SIMP(statut='o',typ='R'),
13529              COND_TMM        =SIMP(statut='o',typ='R'),
13530              COND_LMP        =SIMP(statut='o',typ='R'),
13531              COND_TMP        =SIMP(statut='o',typ='R'),
13532              COND_LPP        =SIMP(statut='o',typ='R'),
13533              COND_TPP        =SIMP(statut='o',typ='R'),
13534              COND_LSI        =SIMP(statut='o',typ='R'),
13535              COND_TSI        =SIMP(statut='o',typ='R'),
13536              COND_NMM        =SIMP(statut='o',typ='R'),
13537              COND_NMP        =SIMP(statut='o',typ='R'),
13538              COND_NPP        =SIMP(statut='o',typ='R'),
13539              COND_NSI        =SIMP(statut='o',typ='R'),
13540              CMAS_MM         =SIMP(statut='f',typ='R'),
13541              CMAS_MP         =SIMP(statut='f',typ='R'),
13542              CMAS_PP         =SIMP(statut='f',typ='R'),
13543              CMAS_SI         =SIMP(statut='f',typ='R'),
13544            ),
13545            THER_COQUE_FO   =FACT(statut='f',
13546              COND_LMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13547              COND_TMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13548              COND_LMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13549              COND_TMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13550              COND_LPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13551              COND_TPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13552              COND_LSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13553              COND_TSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13554              COND_NMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13555              COND_NMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13556              COND_NPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13557              COND_NSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13558              CMAS_MM         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13559              CMAS_MP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13560              CMAS_PP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13561              CMAS_SI         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13562            ),
13563            SECH_GRANGER    =FACT(statut='f',
13564              A               =SIMP(statut='o',typ='R'),
13565              B               =SIMP(statut='o',typ='R'),
13566              QSR_K           =SIMP(statut='o',typ='R'),
13567              TEMP_0_C        =SIMP(statut='o',typ='R'),
13568            ),
13569            SECH_MENSI      =FACT(statut='f',
13570              A               =SIMP(statut='o',typ='R'),
13571              B               =SIMP(statut='o',typ='R'),
13572            ),
13573            SECH_BAZANT     =FACT(statut='f',
13574              D1              =SIMP(statut='o',typ='R'),
13575              ALPHA_BAZANT    =SIMP(statut='o',typ='R'),
13576              N               =SIMP(statut='o',typ='R'),
13577              FONC_DESORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13578            ),
13579            SECH_NAPPE      =FACT(statut='f',
13580              FONCTION        =SIMP(statut='o',typ=(nappe_sdaster,formule)),
13581            ),
13582 #
13583 # comportement métallurgique
13584 #
13585            META_ACIER      =FACT(statut='f',
13586              TRC             =SIMP(statut='o',typ=(table_sdaster) ),
13587              AR3             =SIMP(statut='o',typ='R'),
13588              ALPHA           =SIMP(statut='o',typ='R'),
13589              MS0             =SIMP(statut='o',typ='R'),
13590              AC1             =SIMP(statut='o',typ='R'),
13591              AC3             =SIMP(statut='o',typ='R'),
13592              TAUX_1          =SIMP(statut='o',typ='R'),
13593              TAUX_3          =SIMP(statut='o',typ='R'),
13594              LAMBDA0         =SIMP(statut='f',typ='R'),
13595              QSR_K           =SIMP(statut='f',typ='R'),
13596              D10             =SIMP(statut='f',typ='R'),
13597              WSR_K           =SIMP(statut='f',typ='R'),
13598            ),
13599            META_ZIRC       =FACT(statut='f',
13600              TDEQ            =SIMP(statut='o',typ='R'),
13601              N               =SIMP(statut='o',typ='R'),
13602              K               =SIMP(statut='o',typ='R'),
13603              T1C             =SIMP(statut='o',typ='R'),
13604              T2C             =SIMP(statut='o',typ='R'),
13605              AC              =SIMP(statut='o',typ='R'),
13606              M               =SIMP(statut='o',typ='R'),
13607              QSR_K           =SIMP(statut='o',typ='R'),
13608              T1R             =SIMP(statut='o',typ='R'),
13609              T2R             =SIMP(statut='o',typ='R'),
13610              AR              =SIMP(statut='o',typ='R'),
13611              BR              =SIMP(statut='o',typ='R'),
13612            ),
13613            DURT_META       =FACT(statut='f',
13614              F1_DURT         =SIMP(statut='o',typ='R'),
13615              F2_DURT         =SIMP(statut='o',typ='R'),
13616              F3_DURT         =SIMP(statut='o',typ='R'),
13617              F4_DURT         =SIMP(statut='o',typ='R'),
13618              C_DURT          =SIMP(statut='o',typ='R'),
13619            ),
13620            ELAS_META       =FACT(statut='f',
13621              E               =SIMP(statut='o',typ='R'),
13622              NU              =SIMP(statut='o',typ='R'),
13623              F_ALPHA         =SIMP(statut='o',typ='R'),
13624              C_ALPHA         =SIMP(statut='o',typ='R'),
13625              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
13626              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
13627              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
13628              F1_SY           =SIMP(statut='f',typ='R'),
13629              F2_SY           =SIMP(statut='f',typ='R'),
13630              F3_SY           =SIMP(statut='f',typ='R'),
13631              F4_SY           =SIMP(statut='f',typ='R'),
13632              C_SY            =SIMP(statut='f',typ='R'),
13633              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13634              F1_S_VP         =SIMP(statut='f',typ='R'),
13635              F2_S_VP         =SIMP(statut='f',typ='R'),
13636              F3_S_VP         =SIMP(statut='f',typ='R'),
13637              F4_S_VP         =SIMP(statut='f',typ='R'),
13638              C_S_VP          =SIMP(statut='f',typ='R' ),
13639              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13640            ),
13641            ELAS_META_FO    =FACT(statut='f',
13642              regles=(
13643                       PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
13644                       PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
13645                     ),
13646              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13647              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13648              F_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13649              C_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13650              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
13651              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
13652              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
13653              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
13654              F1_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13655              F2_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13656              F3_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13657              F4_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13658              C_SY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13659              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13660              F1_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13661              F2_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13662              F3_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13663              F4_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13664              C_S_VP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13665              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13666            ),
13667            META_ECRO_LINE  =FACT(statut='f',
13668              F1_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13669              F2_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13670              F3_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13671              F4_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13672              C_D_SIGM_EPSI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13673            ),
13674            META_TRACTION   =FACT(statut='f',
13675              SIGM_F1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13676              SIGM_F2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13677              SIGM_F3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13678              SIGM_F4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13679              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13680            ),
13681            META_VISC_FO    =FACT(statut='f',
13682              F1_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13683              F1_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13684              F1_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13685              F1_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13686              F2_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13687              F2_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13688              F2_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13689              F2_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13690              F3_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13691              F3_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13692              F3_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13693              F3_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13694              F4_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13695              F4_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13696              F4_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13697              F4_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13698              C_ETA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13699              C_N             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13700              C_C             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13701              C_M             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13702            ),
13703            META_PT         =FACT(statut='f',
13704              F1_K            =SIMP(statut='f',typ='R'),
13705              F2_K            =SIMP(statut='f',typ='R'),
13706              F3_K            =SIMP(statut='f',typ='R'),
13707              F4_K            =SIMP(statut='f',typ='R'),
13708              F1_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13709              F2_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13710              F3_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13711              F4_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13712            ),
13713            META_RE         =FACT(statut='f',
13714              C_F1_THETA      =SIMP(statut='f',typ='R'),
13715              C_F2_THETA      =SIMP(statut='f',typ='R'),
13716              C_F3_THETA      =SIMP(statut='f',typ='R'),
13717              C_F4_THETA      =SIMP(statut='f',typ='R'),
13718              F1_C_THETA      =SIMP(statut='f',typ='R'),
13719              F2_C_THETA      =SIMP(statut='f',typ='R'),
13720              F3_C_THETA      =SIMP(statut='f',typ='R'),
13721              F4_C_THETA      =SIMP(statut='f',typ='R'),
13722            ),
13723 #
13724 # comportement fluide
13725 #
13726            FLUIDE          =FACT(statut='f',
13727              regles=(EXCLUS('CELE_C','CELE_R'),),
13728              RHO             =SIMP(statut='o',typ='R'),
13729              CELE_C          =SIMP(statut='f',typ='C'),
13730              CELE_R          =SIMP(statut='f',typ='R'),
13731            ),
13732 # =================================================================================
13733 # COMPORTEMENT THERMO_HYDRO_MECANIQUE
13734 # LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES
13735 # DE LA LOI DE COUPLAGE THM DE LA RELATION
13736 # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS
13737 # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE
13738 # ET LIQU_AD_GAZ_VAPE
13739 # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
13740 # 1 -->  LIQU_SATU
13741 # 2 -->  GAZ
13742 # 3 -->  LIQU_VAPE
13743 # 4 -->  LIQU_VAPE_GAZ
13744 # 5 -->  LIQU_GAZ
13745 # 6 -->  LIQU_GAZ_ATM
13746 # 9 -->  LIQU_AD_GAZ_VAPE
13747 # 10 -->  LIQU_AD_GAZ
13748 # =================================================================================
13749            COMP_THM        = SIMP(statut='f', typ='TXM',
13750                                   into = ( "LIQU_SATU"     ,
13751                                            "LIQU_GAZ"      ,
13752                                            "GAZ"           ,
13753                                            "LIQU_GAZ_ATM"  ,
13754                                            "LIQU_VAPE_GAZ" ,
13755                                            "LIQU_VAPE"     ,
13756                                            "LIQU_AD_GAZ_VAPE" ,
13757                                            "LIQU_AD_GAZ" ,
13758                                           ) ),
13759 # =================================================================================
13760 # --- LOI DE COUPLAGE DE TYPE LIQU_SATU -------------------------------------------
13761 # =================================================================================
13762 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
13763 # --- THM_INIT, THM_DIFFU, THM_LIQU -----------------------------------------------
13764 # =================================================================================
13765            b_liqusatu      = BLOC(condition = "COMP_THM == 'LIQU_SATU' ",
13766                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU",
13767 # =================================================================================
13768 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13769 # =================================================================================
13770                              THM_INIT   = FACT(statut='o',
13771 # ---------------------------------------------------------------------------------
13772 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
13773 # ---------------------------------------------------------------------------------
13774                                            PRE1          = SIMP(statut='o',typ='R'),
13775                                            PORO          = SIMP(statut='o',typ='R'),
13776 # ---------------------------------------------------------------------------------
13777 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
13778 # ---------------------------------------------------------------------------------
13779                                            TEMP          = SIMP(statut='f',typ='R'),
13780 # ---------------------------------------------------------------------------------
13781 # -------------------   DONNEES INUTILES   ----------------------------------------
13782 # ---------------------------------------------------------------------------------
13783                                            PRE2          = SIMP(statut='f',typ='R'),
13784                                            PRES_VAPE     = SIMP(statut='f',typ='R'),
13785                                            DEGR_SATU     = SIMP(statut='f',typ='R'),
13786 # ---------------------------------------------------------------------------------
13787 # -------------------   DONNEE CACHEE ---------------------------------------------
13788 # ---------------------------------------------------------------------------------
13789                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 1.0,),
13790                                              ),
13791 # =================================================================================
13792 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13793 # =================================================================================
13794                              THM_DIFFU  = FACT(statut='o',
13795 # ---------------------------------------------------------------------------------
13796 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
13797 # ---------------------------------------------------------------------------------
13798                                            RHO           = SIMP(statut='o',typ='R'),
13799                                            BIOT_COEF     = SIMP(statut='o',typ='R'),
13800                                            PESA_X        = SIMP(statut='o',typ='R'),
13801                                            PESA_Y        = SIMP(statut='o',typ='R'),
13802                                            PESA_Z        = SIMP(statut='o',typ='R'),
13803 # ---------------------------------------------------------------------------------
13804 # -------------------   DONNEES FACULTATIVES   ------------------------------------
13805 # ---------------------------------------------------------------------------------
13806                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13807 # ---------------------------------------------------------------------------------
13808 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
13809 # ---------------------------------------------------------------------------------
13810                                            CP            = SIMP(statut='f',typ='R'),
13811                                            PERM_IN       = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13812                                            PERM_END      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13813                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
13814                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
13815                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13816                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13817                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13818                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13819                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13820                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13821                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13822                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13823                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13824                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13825                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13826                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13827                                            LAMB_CT   = SIMP(statut='f',typ='R'),
13828 # ---------------------------------------------------------------------------------
13829 # -------------------   DONNEES INUTILES   ----------------------------------------
13830 # ---------------------------------------------------------------------------------
13831                                            R_GAZ         = SIMP(statut='f',typ='R'),
13832                                            EMMAG           = SIMP(statut='f',typ='R'),
13833                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13834                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13835                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13836                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13837                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13838                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13839                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13840                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13841                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13842                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13843                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13844                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13845                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13846                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13847                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13848                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13849                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13850                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13851                                              ),
13852 # =================================================================================
13853 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13854 # =================================================================================
13855                              THM_LIQU   = FACT(statut='o',
13856 # ---------------------------------------------------------------------------------
13857 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
13858 # ---------------------------------------------------------------------------------
13859                                            RHO           = SIMP(statut='o',typ='R'),
13860                                            UN_SUR_K      = SIMP(statut='o',typ='R'),
13861                                            VISC          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13862                                            D_VISC_TEMP   = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
13863 # ---------------------------------------------------------------------------------
13864 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
13865 # ---------------------------------------------------------------------------------
13866                                            ALPHA         = SIMP(statut='f',typ='R'),
13867                                            CP            = SIMP(statut='f',typ='R'),
13868                                          ),
13869 # =================================================================================
13870 # --- MOT-CLE INUTILE -------------------------------------------------------------
13871 # =================================================================================
13872            THM_GAZ         =FACT(statut='f',
13873              MASS_MOL        =SIMP(statut='f',typ='R'),
13874              CP              =SIMP(statut='f',typ='R'),
13875              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13876              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13877            ),
13878 # =================================================================================
13879 # --- MOT-CLE INUTILE -------------------------------------------------------------
13880 # =================================================================================
13881            THM_VAPE_GAZ    =FACT(statut='f',
13882              MASS_MOL        =SIMP(statut='f',typ='R'),
13883              CP              =SIMP(statut='f',typ='R'),
13884              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13885              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13886            ),
13887                                  ),
13888 # =================================================================================
13889 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ --------------------------------------------
13890 # =================================================================================
13891 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
13892 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
13893 # =================================================================================
13894            b_liqugaz      = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ",
13895                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ",
13896 # =================================================================================
13897 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13898 # =================================================================================
13899                              THM_INIT   = FACT(statut='o',
13900 # ---------------------------------------------------------------------------------
13901 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
13902 # ---------------------------------------------------------------------------------
13903                                            PRE1             = SIMP(statut='o',typ='R'),
13904                                            PRE2             = SIMP(statut='o',typ='R'),
13905                                            PORO             = SIMP(statut='o',typ='R'),
13906 # ---------------------------------------------------------------------------------
13907 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
13908 # ---------------------------------------------------------------------------------
13909                                            TEMP             = SIMP(statut='f',typ='R'),
13910 # ---------------------------------------------------------------------------------
13911 # -------------------   DONNEES INUTILES   ----------------------------------------
13912 # ---------------------------------------------------------------------------------
13913                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
13914                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
13915 # ---------------------------------------------------------------------------------
13916 # -------------------   DONNEE CACHEE ---------------------------------------------
13917 # ---------------------------------------------------------------------------------
13918                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 5.0,),
13919                                              ),
13920 # =================================================================================
13921 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13922 # =================================================================================
13923                              THM_DIFFU  = FACT(statut='o',
13924 # ---------------------------------------------------------------------------------
13925 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
13926 # ---------------------------------------------------------------------------------
13927                                            R_GAZ            = SIMP(statut='o',typ='R'),
13928                                            RHO              = SIMP(statut='o',typ='R'),
13929                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
13930                                            PESA_X           = SIMP(statut='o',typ='R'),
13931                                            PESA_Y           = SIMP(statut='o',typ='R'),
13932                                            PESA_Z           = SIMP(statut='o',typ='R'),
13933                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13934                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13935                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13936                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13937                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13938                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13939                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13940 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
13941
13942                                            VG_N    = SIMP(statut='f',typ='R'),
13943                                            VG_SR    = SIMP(statut='f',typ='R'),
13944                                            VG_PR   = SIMP(statut='f',typ='R'),
13945                                            VG_SMAX = SIMP(statut='f',typ='R'),
13946                                            VG_SATUR = SIMP(statut='f',typ='R'),
13947 # ---------------------------------------------------------------------------------
13948 # -------------------   DONNEES FACULTATIVES   ------------------------------------
13949 # ---------------------------------------------------------------------------------
13950                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13951 #
13952 # ---------------------------------------------------------------------------------
13953 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
13954 # ---------------------------------------------------------------------------------
13955                                            CP               = SIMP(statut='f',typ='R'),
13956                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13957                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13958                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13959                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13960                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13961                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13962                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13963                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13964                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13965                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13966                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13967                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13968                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13969                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13970                                            LAMB_CT   = SIMP(statut='f',typ='R'),
13971 #
13972                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
13973                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
13974                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
13975                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
13976                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
13977                                             UN_PARMI('VG_N','SATU_PRES'),
13978                                            ),
13979
13980 # ---------------------------------------------------------------------------------
13981 # -------------------   DONNEES INUTILES   ----------------------------------------
13982 # ---------------------------------------------------------------------------------
13983                                            EMMAG           = SIMP(statut='f',typ='R'),
13984                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13985                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13986                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13987                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13988                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13989                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13990                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13991                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13992                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13993                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13994                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13995                                              ) ,
13996 # =================================================================================
13997 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
13998 # =================================================================================
13999                              THM_LIQU   = FACT(statut='o',
14000 # ---------------------------------------------------------------------------------
14001 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14002 # ---------------------------------------------------------------------------------
14003                                            RHO              = SIMP(statut='o',typ='R'),
14004                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14005                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14006                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14007 # ---------------------------------------------------------------------------------
14008 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14009 # ---------------------------------------------------------------------------------
14010                                            ALPHA            = SIMP(statut='f',typ='R'),
14011                                            CP               = SIMP(statut='f',typ='R'),
14012                                              ),
14013 # =================================================================================
14014 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14015 # =================================================================================
14016                              THM_GAZ    = FACT(statut='o',
14017 # ---------------------------------------------------------------------------------
14018 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14019 # ---------------------------------------------------------------------------------
14020                                            MASS_MOL        = SIMP(statut='o',typ='R'),
14021                                            VISC            = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14022                                            D_VISC_TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14023 # ---------------------------------------------------------------------------------
14024 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14025 # ---------------------------------------------------------------------------------
14026                                            CP              = SIMP(statut='f',typ='R'),
14027                                              ),
14028 # =================================================================================
14029 # --- MOT-CLE INUTILE -------------------------------------------------------------
14030 # =================================================================================
14031            THM_VAPE_GAZ    =FACT(statut='f',
14032              MASS_MOL        =SIMP(statut='f',typ='R'),
14033              CP              =SIMP(statut='f',typ='R'),
14034              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14035              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14036            ),
14037                                  ),
14038 # =================================================================================
14039 # --- LOI DE COUPLAGE DE TYPE GAZ -------------------------------------------------
14040 # =================================================================================
14041 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14042 # --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------
14043 # =================================================================================
14044            b_gaz          = BLOC(condition = "COMP_THM == 'GAZ' ",
14045                                  fr="Paramètres nécessaires pour une loi de couplage de type GAZ",
14046 # =================================================================================
14047 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14048 # =================================================================================
14049                              THM_INIT   = FACT(statut='o',
14050 # ---------------------------------------------------------------------------------
14051 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14052 # ---------------------------------------------------------------------------------
14053                                            TEMP             = SIMP(statut='o',typ='R'),
14054                                            PRE1             = SIMP(statut='o',typ='R'),
14055                                            PORO             = SIMP(statut='o',typ='R'),
14056 # ---------------------------------------------------------------------------------
14057 # -------------------   DONNEES INUTILES   ----------------------------------------
14058 # ---------------------------------------------------------------------------------
14059                                            PRE2             = SIMP(statut='f',typ='R'),
14060                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
14061                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14062 # ---------------------------------------------------------------------------------
14063 # -------------------   DONNEE CACHEE ---------------------------------------------
14064 # ---------------------------------------------------------------------------------
14065                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 2.0,),
14066                                              ),
14067 # =================================================================================
14068 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14069 # =================================================================================
14070                              THM_DIFFU  = FACT(statut='o',
14071 # ---------------------------------------------------------------------------------
14072 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14073 # ---------------------------------------------------------------------------------
14074                                            R_GAZ            = SIMP(statut='o',typ='R'),
14075                                            RHO              = SIMP(statut='o',typ='R'),
14076                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14077                                            PESA_X           = SIMP(statut='o',typ='R'),
14078                                            PESA_Y           = SIMP(statut='o',typ='R'),
14079                                            PESA_Z           = SIMP(statut='o',typ='R'),
14080 # ---------------------------------------------------------------------------------
14081 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14082 # ---------------------------------------------------------------------------------
14083                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14084 # ---------------------------------------------------------------------------------
14085 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14086 # ---------------------------------------------------------------------------------
14087                                            CP               = SIMP(statut='f',typ='R'),
14088                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14089                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14090                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14091                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
14092                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14093                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14094                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14095                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14096                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14097                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14098                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14099                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14100                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14101                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14102 # ---------------------------------------------------------------------------------
14103 # -------------------   DONNEES INUTILES   ----------------------------------------
14104 # ---------------------------------------------------------------------------------
14105                                            EMMAG           = SIMP(statut='f',typ='R'),
14106                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14107                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14108                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14109                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14110                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14111                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14112                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14113                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14114                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14115                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14116                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14117                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14118                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14119                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14120                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14121                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14122                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14123                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14124                                              ) ,
14125 # =================================================================================
14126 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14127 # =================================================================================
14128                              THM_GAZ    = FACT(statut='o',
14129 # ---------------------------------------------------------------------------------
14130 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14131 # ---------------------------------------------------------------------------------
14132                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14133                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14134                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14135 # ---------------------------------------------------------------------------------
14136 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14137 # ---------------------------------------------------------------------------------
14138                                            CP               = SIMP(statut='f',typ='R'),
14139                                              ),
14140 # =================================================================================
14141 # --- MOT-CLE INUTILE -------------------------------------------------------------
14142 # =================================================================================
14143            THM_LIQU        =FACT(statut='f',
14144              RHO             =SIMP(statut='f',typ='R'),
14145              UN_SUR_K        =SIMP(statut='f',typ='R'),
14146              ALPHA           =SIMP(statut='f',typ='R'),
14147              CP              =SIMP(statut='f',typ='R'),
14148              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14149              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14150              COEF_HENRY      =SIMP(statut='f',typ='R'),
14151            ),
14152 # =================================================================================
14153 # --- MOT-CLE INUTILE -------------------------------------------------------------
14154 # =================================================================================
14155            THM_VAPE_GAZ    =FACT(statut='f',
14156              MASS_MOL        =SIMP(statut='f',typ='R'),
14157              CP              =SIMP(statut='f',typ='R'),
14158              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14159              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14160            ),
14161                                  ),
14162 # =================================================================================
14163 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ----------------------------------------
14164 # =================================================================================
14165 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14166 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
14167 # =================================================================================
14168            b_liqugazatm   = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ",
14169                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM",
14170 # =================================================================================
14171 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14172 # =================================================================================
14173                              THM_INIT   = FACT(statut='o',
14174 # ---------------------------------------------------------------------------------
14175 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14176 # ---------------------------------------------------------------------------------
14177                                            PRE1             = SIMP(statut='o',typ='R'),
14178                                            PORO             = SIMP(statut='o',typ='R'),
14179 # ---------------------------------------------------------------------------------
14180 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14181 # ---------------------------------------------------------------------------------
14182                                            TEMP             = SIMP(statut='f',typ='R'),
14183 # ---------------------------------------------------------------------------------
14184 # -------------------   DONNEES INUTILES   ----------------------------------------
14185 # ---------------------------------------------------------------------------------
14186                                            PRE2             = SIMP(statut='f',typ='R'),
14187                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
14188                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14189 # ---------------------------------------------------------------------------------
14190 # -------------------   DONNEE CACHEE ---------------------------------------------
14191 # ---------------------------------------------------------------------------------
14192                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 6.0,),
14193                                              ),
14194 # =================================================================================
14195 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14196 # =================================================================================
14197                              THM_DIFFU  = FACT(statut='o',
14198 # ---------------------------------------------------------------------------------
14199 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14200 # ---------------------------------------------------------------------------------
14201                                            RHO              = SIMP(statut='o',typ='R'),
14202                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14203                                            PESA_X           = SIMP(statut='o',typ='R'),
14204                                            PESA_Y           = SIMP(statut='o',typ='R'),
14205                                            PESA_Z           = SIMP(statut='o',typ='R'),
14206                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14207                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14208                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14209                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14210 # ---------------------------------------------------------------------------------
14211 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14212 # ---------------------------------------------------------------------------------
14213                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14214 # ---------------------------------------------------------------------------------
14215 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14216 # ---------------------------------------------------------------------------------
14217                                            CP               = SIMP(statut='f',typ='R'),
14218                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14219                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14220                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14221                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
14222                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14223                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14224                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14225                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14226                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14227                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14228                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14229                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14230                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14231                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14232 # ---------------------------------------------------------------------------------
14233 # -------------------   DONNEES INUTILES   ----------------------------------------
14234 # ---------------------------------------------------------------------------------
14235              EMMAG           = SIMP(statut='f',typ='R'),
14236              R_GAZ           =SIMP(statut='f',typ='R'),
14237              PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14238              D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14239              D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14240              FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14241              FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14242              FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14243              FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14244              D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14245              D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14246              FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14247              FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14248              FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14249              FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14250              D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14251                                              ) ,
14252 # =================================================================================
14253 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14254 # =================================================================================
14255                              THM_LIQU   = FACT(statut='o',
14256 # ---------------------------------------------------------------------------------
14257 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14258 # ---------------------------------------------------------------------------------
14259                                            RHO              = SIMP(statut='o',typ='R'),
14260                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14261                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14262                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14263 # ---------------------------------------------------------------------------------
14264 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14265 # ---------------------------------------------------------------------------------
14266                                            ALPHA            = SIMP(statut='f',typ='R'),
14267                                            CP               = SIMP(statut='f',typ='R'),
14268                                              ),
14269 # =================================================================================
14270 # --- MOT-CLE INUTILE -------------------------------------------------------------
14271 # =================================================================================
14272                              THM_GAZ    = FACT(statut='f',
14273                                            MASS_MOL         = SIMP(statut='f',typ='R'),
14274                                            VISC             = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14275                                            D_VISC_TEMP      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14276                                            CP               = SIMP(statut='f',typ='R'),
14277                                              ),
14278 # =================================================================================
14279 # --- MOT-CLE INUTILE -------------------------------------------------------------
14280 # =================================================================================
14281            THM_VAPE_GAZ    =FACT(statut='f',
14282              MASS_MOL        =SIMP(statut='f',typ='R'),
14283              CP              =SIMP(statut='f',typ='R'),
14284              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14285              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14286            ),
14287                                  ),
14288
14289 # =================================================================================
14290 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ -------------------------------------
14291 # =================================================================================
14292 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14293 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ,  THM_AIR_DISSOUS---------
14294 # =================================================================================
14295            b_liquadgaz  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ' ",
14296                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ",
14297 # =================================================================================
14298 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14299 # =================================================================================
14300                              THM_INIT   = FACT(statut='o',
14301 # ---------------------------------------------------------------------------------
14302 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14303 # ---------------------------------------------------------------------------------
14304                                            PRE1             = SIMP(statut='o',typ='R'),
14305                                            PRE2             = SIMP(statut='o',typ='R'),
14306                                            PORO             = SIMP(statut='o',typ='R'),
14307                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
14308 # ---------------------------------------------------------------------------------
14309 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14310 # ---------------------------------------------------------------------------------
14311                                            TEMP             = SIMP(statut='f',typ='R'),
14312 # ---------------------------------------------------------------------------------
14313 # -------------------   DONNEES INUTILES   ----------------------------------------
14314 # ---------------------------------------------------------------------------------
14315                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14316 # ---------------------------------------------------------------------------------
14317 # -------------------   DONNEE CACHEE ---------------------------------------------
14318 # ---------------------------------------------------------------------------------
14319                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 10.0,),
14320                                              ),
14321 # =================================================================================
14322 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14323 # =================================================================================
14324                              THM_DIFFU  = FACT(statut='o',
14325 # ---------------------------------------------------------------------------------
14326 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14327 # ---------------------------------------------------------------------------------
14328                                            R_GAZ            = SIMP(statut='o',typ='R'),
14329                                            RHO              = SIMP(statut='o',typ='R'),
14330                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14331                                            PESA_X           = SIMP(statut='o',typ='R'),
14332                                            PESA_Y           = SIMP(statut='o',typ='R'),
14333                                            PESA_Z           = SIMP(statut='o',typ='R'),
14334                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14335                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14336                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14337                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14338                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14339                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14340                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14341 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
14342                                            VG_N     = SIMP(statut='f',typ='R'),
14343                                            VG_SR    = SIMP(statut='f',typ='R'),
14344                                            VG_PR    = SIMP(statut='f',typ='R'),
14345                                            VG_SMAX  = SIMP(statut='f',typ='R'),
14346                                            VG_SATUR = SIMP(statut='f',typ='R'),
14347 #
14348                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14349                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14350 # ---------------------------------------------------------------------------------
14351 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14352 # ---------------------------------------------------------------------------------
14353                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14354 # ---------------------------------------------------------------------------------
14355 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14356 # ---------------------------------------------------------------------------------
14357                                            CP               = SIMP(statut='f',typ='R'),
14358                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14359                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14360                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14361                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14362                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14363                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14364                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14365                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14366                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14367                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14368                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14369                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14370                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14371                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14372                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14373 #
14374                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14375                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
14376                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
14377                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
14378                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
14379                                             UN_PARMI('VG_N','SATU_PRES'),
14380                                            ),
14381 # ---------------------------------------------------------------------------------
14382 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14383 # ---------------------------------------------------------------------------------
14384                                            EMMAG            = SIMP(statut='f',typ='R'),
14385                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14386                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14387                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14388                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14389                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14390 #
14391                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14392                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14393                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14394                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14395 # ---------------------------------------------------------------------------------
14396 # -------------------   DONNEES CACHEES -------------------------------------------
14397 # ---------------------------------------------------------------------------------
14398                                              ) ,
14399 # =================================================================================
14400 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14401 # =================================================================================
14402                              THM_LIQU   = FACT(statut='o',
14403 # ---------------------------------------------------------------------------------
14404 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14405 # ---------------------------------------------------------------------------------
14406                                            RHO              = SIMP(statut='o',typ='R'),
14407                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14408                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14409                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14410 # ---------------------------------------------------------------------------------
14411 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14412 # ---------------------------------------------------------------------------------
14413                                            ALPHA            = SIMP(statut='f',typ='R'),
14414                                            CP               = SIMP(statut='f',typ='R'),
14415 # ---------------------------------------------------------------------------------
14416 # -------------------   DONNEES CACHEES -------------------------------------------
14417 # ---------------------------------------------------------------------------------
14418                                              ),
14419 # =================================================================================
14420 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14421 # =================================================================================
14422                              THM_GAZ    = FACT(statut='o',
14423 # ---------------------------------------------------------------------------------
14424 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14425 # ---------------------------------------------------------------------------------
14426                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14427                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14428                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14429 # ---------------------------------------------------------------------------------
14430 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14431 # ---------------------------------------------------------------------------------
14432                                            CP               = SIMP(statut='f',typ='R'),
14433 # ---------------------------------------------------------------------------------
14434 # -------------------   DONNEES CACHEES -------------------------------------------
14435 # ---------------------------------------------------------------------------------
14436                                              ),
14437 # =================================================================================
14438 # --- MOT-CLE FACULTATIF ---------------------------------------------------------
14439 # =================================================================================
14440                              THM_VAPE_GAZ = FACT(statut='f',
14441 # ---------------------------------------------------------------------------------
14442 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14443 # ---------------------------------------------------------------------------------
14444                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14445                                            CP               = SIMP(statut='o',typ='R'),
14446                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14447                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14448 # ---------------------------------------------------------------------------------
14449 # -------------------   DONNEES CACHEES -------------------------------------------
14450 # ---------------------------------------------------------------------------------
14451                                              ),
14452 # =================================================================================
14453 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14454 # =================================================================================
14455                              THM_AIR_DISS = FACT(statut='o',
14456 # ---------------------------------------------------------------------------------
14457 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14458 # ---------------------------------------------------------------------------------
14459                                            CP               = SIMP(statut='o',typ='R'),
14460                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14461                                              ),
14462                                  ),
14463
14464 # =================================================================================
14465 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ ---------------------------------------
14466 # =================================================================================
14467 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14468 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------
14469 # =================================================================================
14470            b_liquvapegaz  = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ",
14471                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ",
14472 # =================================================================================
14473 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14474 # =================================================================================
14475                              THM_INIT   = FACT(statut='o',
14476 # ---------------------------------------------------------------------------------
14477 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14478 # ---------------------------------------------------------------------------------
14479                                            PRE1             = SIMP(statut='o',typ='R'),
14480                                            PRE2             = SIMP(statut='o',typ='R'),
14481                                            PORO             = SIMP(statut='o',typ='R'),
14482                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
14483 # ---------------------------------------------------------------------------------
14484 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14485 # ---------------------------------------------------------------------------------
14486                                            TEMP             = SIMP(statut='f',typ='R'),
14487 # ---------------------------------------------------------------------------------
14488 # -------------------   DONNEES INUTILES   ----------------------------------------
14489 # ---------------------------------------------------------------------------------
14490                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14491 # ---------------------------------------------------------------------------------
14492 # -------------------   DONNEE CACHEE ---------------------------------------------
14493 # ---------------------------------------------------------------------------------
14494                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 4.0,),
14495                                              ),
14496 # =================================================================================
14497 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14498 # =================================================================================
14499                              THM_DIFFU  = FACT(statut='o',
14500 # ---------------------------------------------------------------------------------
14501 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14502 # ---------------------------------------------------------------------------------
14503                                            R_GAZ            = SIMP(statut='o',typ='R'),
14504                                            RHO              = SIMP(statut='o',typ='R'),
14505                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14506                                            PESA_X           = SIMP(statut='o',typ='R'),
14507                                            PESA_Y           = SIMP(statut='o',typ='R'),
14508                                            PESA_Z           = SIMP(statut='o',typ='R'),
14509                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14510                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14511                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14512                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14513                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14514                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14515                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14516 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
14517
14518                                            VG_N     = SIMP(statut='f',typ='R'),
14519                                            VG_SR    = SIMP(statut='f',typ='R'),
14520                                            VG_PR    = SIMP(statut='f',typ='R'),
14521                                            VG_SMAX  = SIMP(statut='f',typ='R'),
14522                                            VG_SATUR = SIMP(statut='f',typ='R'),
14523 #
14524                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14525 # ---------------------------------------------------------------------------------
14526 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14527 # ---------------------------------------------------------------------------------
14528                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14529 # ---------------------------------------------------------------------------------
14530 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14531 # ---------------------------------------------------------------------------------
14532                                            CP               = SIMP(statut='f',typ='R'),
14533                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14534                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14535                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14536                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14537                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14538                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14539                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14540                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14541                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14542                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14543                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14544                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14545                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14546                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14547                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14548 #
14549                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14550                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
14551                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
14552                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
14553                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
14554                                             UN_PARMI('VG_N','SATU_PRES'),
14555                                            ),
14556 # ---------------------------------------------------------------------------------
14557 # -------------------   DONNEES FACULTATIVE   ----------------------------------
14558 # ---------------------------------------------------------------------------------
14559                                            EMMAG            = SIMP(statut='f',typ='R'),
14560                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14561                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14562                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14563                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14564                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14565 # ---------------------------------------------------------------------------------
14566 # -------------------   DONNEES INUTILES   ----------------------------------------
14567 # ---------------------------------------------------------------------------------
14568                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14569                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14570                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14571                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14572                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14573                                              ) ,
14574 # =================================================================================
14575 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14576 # =================================================================================
14577                              THM_LIQU   = FACT(statut='o',
14578 # ---------------------------------------------------------------------------------
14579 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14580 # ---------------------------------------------------------------------------------
14581                                            RHO              = SIMP(statut='o',typ='R'),
14582                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14583                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14584                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14585 # ---------------------------------------------------------------------------------
14586 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14587 # ---------------------------------------------------------------------------------
14588                                            ALPHA            = SIMP(statut='f',typ='R'),
14589                                            CP               = SIMP(statut='f',typ='R'),
14590                                              ),
14591 # =================================================================================
14592 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14593 # =================================================================================
14594                              THM_GAZ    = FACT(statut='o',
14595 # ---------------------------------------------------------------------------------
14596 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14597 # ---------------------------------------------------------------------------------
14598                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14599                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14600                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14601 # ---------------------------------------------------------------------------------
14602 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14603 # ---------------------------------------------------------------------------------
14604                                            CP               = SIMP(statut='f',typ='R'),
14605                                              ),
14606 # =================================================================================
14607 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14608 # =================================================================================
14609                              THM_VAPE_GAZ = FACT(statut='o',
14610 # ---------------------------------------------------------------------------------
14611 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14612 # ---------------------------------------------------------------------------------
14613                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14614                                            CP               = SIMP(statut='o',typ='R'),
14615                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14616                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14617                                              ),
14618                                  ),
14619 # =================================================================================
14620 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE -------------------------------------
14621 # =================================================================================
14622 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14623 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS---------
14624 # =================================================================================
14625            b_liquadvape  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ",
14626                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE",
14627 # =================================================================================
14628 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14629 # =================================================================================
14630                              THM_INIT   = FACT(statut='o',
14631 # ---------------------------------------------------------------------------------
14632 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14633 # ---------------------------------------------------------------------------------
14634                                            PRE1             = SIMP(statut='o',typ='R'),
14635                                            PRE2             = SIMP(statut='o',typ='R'),
14636                                            PORO             = SIMP(statut='o',typ='R'),
14637                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
14638 # ---------------------------------------------------------------------------------
14639 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14640 # ---------------------------------------------------------------------------------
14641                                            TEMP             = SIMP(statut='f',typ='R'),
14642 # ---------------------------------------------------------------------------------
14643 # -------------------   DONNEES INUTILES   ----------------------------------------
14644 # ---------------------------------------------------------------------------------
14645                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14646 # ---------------------------------------------------------------------------------
14647 # -------------------   DONNEE CACHEE ---------------------------------------------
14648 # ---------------------------------------------------------------------------------
14649                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 9.0,),
14650                                              ),
14651 # =================================================================================
14652 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14653 # =================================================================================
14654                              THM_DIFFU  = FACT(statut='o',
14655 # ---------------------------------------------------------------------------------
14656 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14657 # ---------------------------------------------------------------------------------
14658                                            R_GAZ            = SIMP(statut='o',typ='R'),
14659                                            RHO              = SIMP(statut='o',typ='R'),
14660                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14661                                            PESA_X           = SIMP(statut='o',typ='R'),
14662                                            PESA_Y           = SIMP(statut='o',typ='R'),
14663                                            PESA_Z           = SIMP(statut='o',typ='R'),
14664                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14665                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14666                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14667                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14668                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14669                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14670                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14671 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
14672                                            VG_N     = SIMP(statut='f',typ='R'),
14673                                            VG_SR    = SIMP(statut='f',typ='R'),
14674                                            VG_PR    = SIMP(statut='f',typ='R'),
14675                                            VG_SMAX  = SIMP(statut='f',typ='R'),
14676                                            VG_SATUR = SIMP(statut='f',typ='R'),
14677 #
14678                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14679                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14680 # ---------------------------------------------------------------------------------
14681 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14682 # ---------------------------------------------------------------------------------
14683                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14684 # ---------------------------------------------------------------------------------
14685 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14686 # ---------------------------------------------------------------------------------
14687                                            CP               = SIMP(statut='f',typ='R'),
14688                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14689                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14690                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14691                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14692                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14693                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14694                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14695                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14696                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14697                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14698                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14699                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14700                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14701                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14702                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14703 #
14704                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14705                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
14706                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
14707                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
14708                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
14709                                             UN_PARMI('VG_N','SATU_PRES'),
14710                                            ),
14711 # ---------------------------------------------------------------------------------
14712 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14713 # ---------------------------------------------------------------------------------
14714                                            EMMAG            = SIMP(statut='f',typ='R'),
14715                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14716                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14717                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14718                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14719                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14720 #
14721                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14722                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14723                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14724                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14725                                              ) ,
14726 # =================================================================================
14727 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14728 # =================================================================================
14729                              THM_LIQU   = FACT(statut='o',
14730 # ---------------------------------------------------------------------------------
14731 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14732 # ---------------------------------------------------------------------------------
14733                                            RHO              = SIMP(statut='o',typ='R'),
14734                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14735                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14736                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14737 # ---------------------------------------------------------------------------------
14738 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14739 # ---------------------------------------------------------------------------------
14740                                            ALPHA            = SIMP(statut='f',typ='R'),
14741                                            CP               = SIMP(statut='f',typ='R'),
14742                                              ),
14743 # =================================================================================
14744 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14745 # =================================================================================
14746                              THM_GAZ    = FACT(statut='o',
14747 # ---------------------------------------------------------------------------------
14748 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14749 # ---------------------------------------------------------------------------------
14750                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14751                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14752                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14753 # ---------------------------------------------------------------------------------
14754 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14755 # ---------------------------------------------------------------------------------
14756                                            CP               = SIMP(statut='f',typ='R'),
14757                                              ),
14758 # =================================================================================
14759 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14760 # =================================================================================
14761                              THM_VAPE_GAZ = FACT(statut='o',
14762 # ---------------------------------------------------------------------------------
14763 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14764 # ---------------------------------------------------------------------------------
14765                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14766                                            CP               = SIMP(statut='o',typ='R'),
14767                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14768                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14769                                              ),
14770 # =================================================================================
14771 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14772 # =================================================================================
14773                              THM_AIR_DISS = FACT(statut='o',
14774 # ---------------------------------------------------------------------------------
14775 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14776 # ---------------------------------------------------------------------------------
14777                                            CP               = SIMP(statut='o',typ='R'),
14778                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14779                                              ),
14780                                  ),
14781 # =================================================================================
14782 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE -------------------------------------------
14783 # =================================================================================
14784 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
14785 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ ---------------------------------
14786 # =================================================================================
14787            b_liquvape  = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ",
14788                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE",
14789 # =================================================================================
14790 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14791 # =================================================================================
14792                              THM_INIT   = FACT(statut='o',
14793 # ---------------------------------------------------------------------------------
14794 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14795 # ---------------------------------------------------------------------------------
14796                                            PRE1             = SIMP(statut='o',typ='R'),
14797                                            PORO             = SIMP(statut='o',typ='R'),
14798                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
14799 # ---------------------------------------------------------------------------------
14800 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14801 # ---------------------------------------------------------------------------------
14802                                            TEMP             = SIMP(statut='f',typ='R'),
14803 # ---------------------------------------------------------------------------------
14804 # -------------------   DONNEES INUTILES   ----------------------------------------
14805 # ---------------------------------------------------------------------------------
14806                                            PRE2             = SIMP(statut='f',typ='R'),
14807                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
14808 # ---------------------------------------------------------------------------------
14809 # -------------------   DONNEE CACHEE ---------------------------------------------
14810 # ---------------------------------------------------------------------------------
14811                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 3.0,),
14812                                              ),
14813 # =================================================================================
14814 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14815 # =================================================================================
14816                              THM_DIFFU  = FACT(statut='o',
14817 # ---------------------------------------------------------------------------------
14818 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14819 # ---------------------------------------------------------------------------------
14820                                            R_GAZ            = SIMP(statut='o',typ='R'),
14821                                            RHO              = SIMP(statut='o',typ='R'),
14822                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
14823                                            PESA_X           = SIMP(statut='o',typ='R'),
14824                                            PESA_Y           = SIMP(statut='o',typ='R'),
14825                                            PESA_Z           = SIMP(statut='o',typ='R'),
14826                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14827                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14828                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14829                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14830                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14831                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14832                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14833 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
14834
14835                                            VG_N    = SIMP(statut='f',typ='R'),
14836                                            VG_SR    = SIMP(statut='f',typ='R'),
14837                                            VG_PR   = SIMP(statut='f',typ='R'),
14838                                            VG_SMAX = SIMP(statut='f',typ='R'),
14839                                            VG_SATUR = SIMP(statut='f',typ='R'),
14840 # ---------------------------------------------------------------------------------
14841 # -------------------   DONNEES FACULTATIVES   ------------------------------------
14842 # ---------------------------------------------------------------------------------
14843                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14844 # ---------------------------------------------------------------------------------
14845 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14846 # ---------------------------------------------------------------------------------
14847                                            CP               = SIMP(statut='f',typ='R'),
14848                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14849                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14850                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14851                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14852                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14853                                            PERMINXY      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14854                                            PERMINYZ      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14855                                            PERMINZX      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14856                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14857                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14858                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14859                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14860                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14861                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14862                                            LAMB_CT   = SIMP(statut='f',typ='R'),
14863 #
14864                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
14865                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
14866                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
14867                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
14868                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
14869                                             UN_PARMI('VG_N','SATU_PRES'),
14870                                            ),
14871 # ---------------------------------------------------------------------------------
14872 # -------------------   DONNEES INUTILES   ----------------------------------------
14873 # ---------------------------------------------------------------------------------
14874                                            EMMAG            = SIMP(statut='f',typ='R'),
14875                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14876                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14877                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14878                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14879                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14880                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14881                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14882                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14883                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14884                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14885                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14886                                              ) ,
14887 # =================================================================================
14888 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14889 # =================================================================================
14890                              THM_LIQU   = FACT(statut='o',
14891 # ---------------------------------------------------------------------------------
14892 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14893 # ---------------------------------------------------------------------------------
14894                                            RHO              = SIMP(statut='o',typ='R'),
14895                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
14896                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14897                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14898 # ---------------------------------------------------------------------------------
14899 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
14900 # ---------------------------------------------------------------------------------
14901                                            ALPHA            = SIMP(statut='f',typ='R'),
14902                                            CP               = SIMP(statut='f',typ='R'),
14903                                              ),
14904 # =================================================================================
14905 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
14906 # =================================================================================
14907                              THM_VAPE_GAZ = FACT(statut='o',
14908 # ---------------------------------------------------------------------------------
14909 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
14910 # ---------------------------------------------------------------------------------
14911                                            MASS_MOL         = SIMP(statut='o',typ='R'),
14912                                            CP               = SIMP(statut='o',typ='R'),
14913                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14914                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14915                                              ),
14916 # =================================================================================
14917 # --- MOT-CLE INUTILE -------------------------------------------------------------
14918 # =================================================================================
14919            THM_GAZ         =FACT(statut='f',
14920              MASS_MOL        =SIMP(statut='f',typ='R'),
14921              CP              =SIMP(statut='f',typ='R'),
14922              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14923              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14924            ),
14925                                  ),
14926 # courbes et coefficients associés à la fatigue et au dommage
14927 #
14928            FATIGUE         =FACT(statut='f',
14929              regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
14930                      PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
14931                      PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
14932                      ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
14933                      ENSEMBLE('A0','A1','A2','A3','SL'),
14934                      PRESENT_PRESENT('A0','E_REFE'),
14935                      ENSEMBLE('D0','TAU0'),),
14936              WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14937              A_BASQUIN       =SIMP(statut='f',typ='R'),
14938              BETA_BASQUIN    =SIMP(statut='f',typ='R'),
14939              A0              =SIMP(statut='f',typ='R'),
14940              A1              =SIMP(statut='f',typ='R'),
14941              A2              =SIMP(statut='f',typ='R'),
14942              A3              =SIMP(statut='f',typ='R'),
14943              SL              =SIMP(statut='f',typ='R'),
14944              MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
14945              E_REFE          =SIMP(statut='f',typ='R'),
14946              D0              =SIMP(statut='f',typ='R'),
14947              TAU0            =SIMP(statut='f',typ='R'),
14948            ),
14949            DOMMA_LEMAITRE  =FACT(statut='f',
14950              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14951              EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
14952              EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
14953            ),
14954            CISA_PLAN_CRIT  =FACT(statut='f',
14955              CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC",
14956                                                             "DANG_VAN_MODI_AC",
14957                                                             "DANG_VAN_MODI_AV",
14958                                                             "MATAKE_MODI_AV",
14959                                                             "FATESOCI_MODI_AV",
14960                                                             ) ),
14961
14962              b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'",
14963                          fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable",
14964                MATAKE_A         =SIMP(statut='o',typ='R'),
14965                MATAKE_B         =SIMP(statut='o',typ='R'),
14966                COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
14967              ),
14968
14969              b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
14970                                  fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
14971                D_VAN_A            =SIMP(statut='o',typ='R'),
14972                D_VAN_B            =SIMP(statut='o',typ='R'),
14973                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
14974              ),
14975
14976              b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'",
14977                                fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable",
14978                FATSOC_A           =SIMP(statut='o',typ='R'),
14979                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
14980              ),
14981            ),
14982
14983
14984            THM_RUPT       =FACT(statut='f',
14985              OUV_FICT        =SIMP(statut='o',typ='R'),
14986              UN_SUR_N        =SIMP(statut='f',typ='R',defaut= 0.),
14987            ),
14988 #
14989 # autres comportements ...
14990 #
14991            WEIBULL         =FACT(statut='f',
14992              M               =SIMP(statut='o',typ='R'),
14993              VOLU_REFE       =SIMP(statut='o',typ='R'),
14994              SIGM_REFE       =SIMP(statut='o',typ='R'),
14995              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
14996            ),
14997            WEIBULL_FO      =FACT(statut='f',
14998              M               =SIMP(statut='o',typ='R'),
14999              VOLU_REFE       =SIMP(statut='o',typ='R'),
15000              SIGM_CNV        =SIMP(statut='o',typ='R'),
15001              SIGM_REFE       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
15002              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
15003            ),
15004            NON_LOCAL       =FACT(statut='f',
15005              regles=(AU_MOINS_UN('LONG_CARA','C_GONF','C_GRAD_VARI','PENA_LAGR',),),
15006              LONG_CARA       =SIMP(statut='f',typ='R'),
15007              C_GRAD_VARI     =SIMP(statut='f',typ='R'),
15008              PENA_LAGR       =SIMP(statut='f',typ='R',defaut= 1.0E3),
15009              C_GONF          =SIMP(statut='f',typ='R'),
15010              COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
15011            ),
15012            RUPT_FRAG       =FACT(statut='f',
15013              GC              =SIMP(statut='o',typ='R'),
15014              SIGM_C          =SIMP(statut='f',typ='R'),
15015              PENA_ADHERENCE  =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=1.E+0),
15016              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
15017              PENA_LAGR       =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0),
15018              RIGI_GLIS       =SIMP(statut='f',typ='R',defaut=1.0E1),
15019            ),
15020            RUPT_FRAG_FO   =FACT(statut='f',
15021              GC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
15022              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15023              PENA_ADHERENCE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15024              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
15025            ),
15026            RUPT_DUCT       =FACT(statut='f',
15027              GC              =SIMP(statut='o',typ='R'),
15028              SIGM_C          =SIMP(statut='o',typ='R'),
15029              COEF_EXTR       =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1),
15030              COEF_PLAS       =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1),
15031              PENA_LAGR       =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0),
15032              RIGI_GLIS       =SIMP(statut='f',typ='R',defaut=1.0E1),
15033            ),
15034            JOINT_MECA_RUPT  =FACT(statut='f',
15035              regles=(EXCLUS('PRES_FLUIDE','PRES_CLAVAGE'),
15036                      PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
15037                      PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
15038                      PRESENT_ABSENT('PRES_CLAVAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
15039                      PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'),
15040                      PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE'),
15041                      PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE','PRES_CLAVAGE'),
15042                      ),
15043              K_N             =SIMP(statut='o',typ='R',val_min=1.E-12),
15044              K_T             =SIMP(statut='f',typ='R',val_min=1.E-12),
15045              SIGM_MAX        =SIMP(statut='o',typ='R',val_min=0.),
15046              ALPHA           =SIMP(statut='f',typ='R',defaut=1., val_min=0., val_max=2.),
15047              PENA_RUPTURE    =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=10.E+0),
15048              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.,val_min=1.E-12),
15049              PRES_FLUIDE     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15050              PRES_CLAVAGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15051              RHO_FLUIDE      =SIMP(statut='f',typ='R',val_min=0.),
15052              VISC_FLUIDE     =SIMP(statut='f',typ='R',val_min=1.E-20),
15053              OUV_MIN         =SIMP(statut='f',typ='R',val_min=1.E-15), 
15054            ),
15055            JOINT_MECA_FROT   =FACT(statut='f',
15056              K_N             =SIMP(statut='o',typ='R',val_min=1.E-12),
15057              K_T             =SIMP(statut='f',typ='R',val_min=1.E-12),
15058              MU              =SIMP(statut='o',typ='R',val_min=1.E-3),             
15059              PENA_TANG       =SIMP(statut='f',typ='R',val_min=0.),
15060              ADHESION        =SIMP(statut='f',typ='R',defaut=0., val_min=0.),
15061            ),           
15062            RCCM            =FACT(statut='f',
15063              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
15064              SY_02           =SIMP(statut='f',typ='R'),
15065              SM              =SIMP(statut='f',typ='R'),
15066              SU              =SIMP(statut='f',typ='R'),
15067              SC              =SIMP(statut='f',typ='R'),
15068              SH              =SIMP(statut='f',typ='R'),
15069              N_KE            =SIMP(statut='f',typ='R'),
15070              M_KE            =SIMP(statut='f',typ='R'),
15071              A_AMORC         =SIMP(statut='f',typ='R'),
15072              B_AMORC         =SIMP(statut='f',typ='R'),
15073              D_AMORC         =SIMP(statut='f',typ='R'),
15074              R_AMORC         =SIMP(statut='f',typ='R'),
15075            ),
15076            RCCM_FO         =FACT(statut='f',
15077              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
15078              SY_02           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15079              SM              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15080              SU              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15081              S               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15082              N_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15083              M_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15084              A_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15085              B_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15086              D_AMORC         =SIMP(statut='f',typ='R'),
15087              R_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
15088            ),
15089            LAIGLE          =FACT(statut='f',
15090              GAMMA_ULT       =SIMP(statut='o',typ='R'),
15091              GAMMA_E         =SIMP(statut='o',typ='R'),
15092              M_ULT           =SIMP(statut='o',typ='R'),
15093              M_E             =SIMP(statut='o',typ='R'),
15094              A_E             =SIMP(statut='o',typ='R'),
15095              M_PIC           =SIMP(statut='o',typ='R'),
15096              A_PIC           =SIMP(statut='o',typ='R'),
15097              ETA             =SIMP(statut='o',typ='R'),
15098              SIGMA_C         =SIMP(statut='o',typ='R'),
15099              GAMMA           =SIMP(statut='o',typ='R'),
15100              KSI             =SIMP(statut='o',typ='R'),
15101              GAMMA_CJS       =SIMP(statut='o',typ='R'),
15102              SIGMA_P1        =SIMP(statut='o',typ='R'),
15103              PA              =SIMP(statut='o',typ='R'),
15104            ),
15105            LETK          =FACT(statut='f',
15106              PA         =SIMP(statut='o',typ='R',fr="pression atmospherique"),
15107              NELAS      =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"),
15108              SIGMA_C    =SIMP(statut='o',typ='R',fr="résistance en compression simple "),
15109              H0_EXT     =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"),
15110              GAMMA_CJS  =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan déviatoire entre 0 et 1."),
15111              XAMS       =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage pre pic"),
15112              ETA        =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage post pic"),
15113              A_0        =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"),
15114              A_E        =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"),
15115              A_PIC      =SIMP(statut='o',typ='R',fr="a du seuil de pic"),
15116              S_0        =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"),
15117              M_0        =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"),
15118              M_E        =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"),
15119              M_PIC      =SIMP(statut='o',typ='R',fr="m du seuil de pic"),
15120              M_ULT      =SIMP(statut='o',typ='R',fr="m du seuil residuel"),
15121              XI_ULT     =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil résiduel"),
15122              XI_E       =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de clivage"),
15123              XI_PIC     =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de pic"),
15124              MV_MAX     =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"),
15125              XIV_MAX    =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil viscoplastique maximal"),
15126              A          =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"),
15127              N          =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"),
15128              SIGMA_P1   =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "),
15129              MU0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
15130              XI0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
15131              MU1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
15132              XI1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
15133            ),
15134            DRUCK_PRAGER  =FACT(statut='f',
15135              ALPHA           =SIMP(statut='o',typ='R'),
15136              SY              =SIMP(statut='o',typ='R'),
15137              P_ULTM          =SIMP(statut='o',typ='R'),
15138              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
15139              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
15140                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
15141                     H               =SIMP(statut='o',typ='R'),
15142                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
15143              ),
15144              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
15145                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
15146                     SY_ULTM         =SIMP(statut='o',typ='R'),
15147                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
15148              ),
15149              DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
15150            ),
15151
15152            DRUCK_PRAGER_FO  =FACT(statut='f',
15153              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,formule)),
15154              SY              =SIMP(statut='o',typ=(fonction_sdaster,formule)),
15155              P_ULTM          =SIMP(statut='o',typ=(fonction_sdaster,formule)),
15156              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
15157              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
15158                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
15159                     H               =SIMP(statut='o',typ=(fonction_sdaster,formule)),
15160                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
15161              ),
15162              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
15163                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
15164                     SY_ULTM         =SIMP(statut='o',typ=(fonction_sdaster,formule)),
15165                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
15166              ),
15167             DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
15168            ),
15169
15170            VISC_DRUC_PRAG          =FACT(statut='f',
15171              PREF       =SIMP(statut='o',typ='R',fr="pression de reference"),
15172              A          =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"),
15173              N          =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"),
15174              P_PIC      =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"),
15175              P_ULT      =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil utime"),
15176              ALPHA_0    =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil d elasticite"),
15177              ALPHA_PIC  =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil de pic"),
15178              ALPHA_ULT  =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil ultime"),
15179              R_0        =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil d'elasticite"),
15180              R_PIC      =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil de pic"),
15181              R_ULT      =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil ultime"),
15182              BETA_0     =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil d elasticite"),
15183              BETA_PIC   =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil de pic"),
15184              BETA_ULT   =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil ultime"),
15185            ),
15186              HOEK_BROWN          =FACT(statut='f',
15187              GAMMA_RUP       =SIMP(statut='o',typ='R'),
15188              GAMMA_RES       =SIMP(statut='o',typ='R'),
15189              S_END           =SIMP(statut='o',typ='R'),
15190              S_RUP           =SIMP(statut='o',typ='R'),
15191              M_END           =SIMP(statut='o',typ='R'),
15192              M_RUP           =SIMP(statut='o',typ='R'),
15193              BETA            =SIMP(statut='o',typ='R'),
15194              ALPHAHB         =SIMP(statut='o',typ='R'),
15195              PHI_RUP         =SIMP(statut='o',typ='R'),
15196              PHI_RES         =SIMP(statut='o',typ='R'),
15197              PHI_END         =SIMP(statut='f',typ='R'),
15198            ),
15199              ELAS_GONF             =FACT(statut='f',
15200              BETAM           =SIMP(statut='o',typ='R'),
15201              PREF            =SIMP(statut='o',typ='R'),
15202            ),
15203              JOINT_BANDIS         =FACT(statut='f',
15204              K                =SIMP(statut='o',typ='R'),
15205              DMAX             =SIMP(statut='o',typ='R'),
15206              GAMMA            =SIMP(statut='o',typ='R'),
15207              KT               =SIMP(statut='f',typ='R',defaut = 1.E12),
15208            ),
15209 ####  MONOCRISTAL
15210
15211            MONO_VISC1      =FACT(statut='f',
15212              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15213              N               =SIMP(statut='o',typ='R'),
15214              K               =SIMP(statut='o',typ='R'),
15215              C               =SIMP(statut='o',typ='R'),
15216            ),
15217            MONO_VISC2      =FACT(statut='f',
15218              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15219              N               =SIMP(statut='o',typ='R'),
15220              K               =SIMP(statut='o',typ='R'),
15221              C               =SIMP(statut='o',typ='R'),
15222              D               =SIMP(statut='o',typ='R'),
15223              A               =SIMP(statut='o',typ='R'),
15224            ),
15225            MONO_VISC3      =FACT(statut='f',
15226              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15227              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
15228              TAUMU           =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"),
15229              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
15230              DELTAV          =SIMP(statut='o',typ='R',fr="Volume d activation"),
15231              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
15232            ),
15233            MONO_ISOT1      =FACT(statut='f',
15234               regles=(UN_PARMI('H','H1'),
15235                       PRESENT_PRESENT('H1','H2','H3','H4'),
15236                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
15237                       ),
15238              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
15239              R_0             =SIMP(statut='o',typ='R'),
15240              Q               =SIMP(statut='o',typ='R'),
15241              B               =SIMP(statut='o',typ='R'),
15242              H               =SIMP(statut='f',typ='R'),
15243              H1              =SIMP(statut='f',typ='R'),
15244              H2              =SIMP(statut='f',typ='R'),
15245              H3              =SIMP(statut='f',typ='R'),
15246              H4              =SIMP(statut='f',typ='R'),
15247              H5              =SIMP(statut='f',typ='R'),
15248              H6              =SIMP(statut='f',typ='R'),
15249            ),
15250            MONO_ISOT2      =FACT(statut='f',
15251               regles=(UN_PARMI('H','H1'),
15252                       PRESENT_PRESENT('H1','H2','H3','H4'),
15253                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
15254                       ),
15255              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
15256              R_0             =SIMP(statut='o',typ='R'),
15257              Q1              =SIMP(statut='o',typ='R'),
15258              B1              =SIMP(statut='o',typ='R'),
15259              H               =SIMP(statut='f',typ='R'),
15260              H1              =SIMP(statut='f',typ='R'),
15261              H2              =SIMP(statut='f',typ='R'),
15262              H3              =SIMP(statut='f',typ='R'),
15263              H4              =SIMP(statut='f',typ='R'),
15264              H5              =SIMP(statut='f',typ='R'),
15265              H6              =SIMP(statut='f',typ='R'),
15266              Q2              =SIMP(statut='o',typ='R'),
15267              B2              =SIMP(statut='o',typ='R'),
15268            ),
15269            MONO_CINE1      =FACT(statut='f',
15270              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
15271              D               =SIMP(statut='o',typ='R'),
15272            ),
15273            MONO_CINE2      =FACT(statut='f',
15274              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
15275              D               =SIMP(statut='o',typ='R'),
15276              GM              =SIMP(statut='o',typ='R'),
15277              PM              =SIMP(statut='o',typ='R'),
15278              C               =SIMP(statut='o',typ='R'),
15279            ),
15280            MONO_DD_KR      =FACT(statut='f',
15281               regles=(UN_PARMI('H','H1'),
15282                       PRESENT_PRESENT('H1','H2','H3','H4'),
15283                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
15284                       ),
15285             # TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15286              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
15287              TAUR            =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"),
15288              TAU0            =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"),
15289              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
15290              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
15291              BSD             =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"),
15292              GCB             =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"),
15293              KDCS            =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"),
15294              P               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
15295              Q               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
15296              H               =SIMP(statut='f',typ='R'),
15297              H1              =SIMP(statut='f',typ='R'),
15298              H2              =SIMP(statut='f',typ='R'),
15299              H3              =SIMP(statut='f',typ='R'),
15300              H4              =SIMP(statut='f',typ='R'),
15301              H5              =SIMP(statut='f',typ='R'),
15302              H6              =SIMP(statut='f',typ='R'),
15303            ),
15304            MONO_DD_CFC      =FACT(statut='f',
15305              regles=(UN_PARMI('H','H1'),
15306                      PRESENT_PRESENT('H1','H2','H3','H4','H5'),
15307                      PRESENT_ABSENT('H','H1','H2','H3','H4','H5'),
15308                      ),
15309              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15310              GAMMA0          =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"),
15311              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
15312              A               =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"),
15313              B               =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"),
15314              N               =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"),
15315              Y               =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"),
15316              ALPHA           =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"),
15317              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"),
15318              RHO_REF         =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"),
15319              H               =SIMP(statut='f',typ='R'),
15320              H1              =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",),
15321              H2              =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",),
15322              H3              =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",),
15323              H4              =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",),
15324              H5              =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",),
15325            ),
15326
15327
15328            MONO_DD_CC      =FACT(statut='f',
15329               regles=(UN_PARMI('H','H1'),
15330                       PRESENT_PRESENT('H1','H2','H3','H4','H5','H6'),
15331                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
15332                       ),
15333              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
15334              GAMMA0          =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"),
15335              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
15336              A               =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"),
15337              B               =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"),
15338              N               =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"),
15339              Y               =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"),
15340              ALPHA           =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"),
15341              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"),
15342              RHO_REF         =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"),
15343              H               =SIMP(statut='f',typ='R'),
15344              H1              =SIMP(statut='f',typ='R'),
15345              H2              =SIMP(statut='f',typ='R'),
15346              H3              =SIMP(statut='f',typ='R'),
15347              H4              =SIMP(statut='f',typ='R'),
15348              H5              =SIMP(statut='f',typ='R'),
15349              H6              =SIMP(statut='f',typ='R'),
15350            ),
15351
15352
15353 ####  MONOCRISTAL
15354
15355 ### UMAT
15356            UMAT   =FACT(statut='f',
15357              C1 =SIMP(statut='f',typ='R'),
15358              C2 =SIMP(statut='f',typ='R'),
15359              C3 =SIMP(statut='f',typ='R'),
15360              C4 =SIMP(statut='f',typ='R'),
15361              C5 =SIMP(statut='f',typ='R'),
15362              C6 =SIMP(statut='f',typ='R'),
15363              C7 =SIMP(statut='f',typ='R'),
15364              C8 =SIMP(statut='f',typ='R'),
15365              C9 =SIMP(statut='f',typ='R'),
15366              C10 =SIMP(statut='f',typ='R'),
15367              C11 =SIMP(statut='f',typ='R'),
15368              C12 =SIMP(statut='f',typ='R'),
15369              C13 =SIMP(statut='f',typ='R'),
15370              C14 =SIMP(statut='f',typ='R'),
15371              C15 =SIMP(statut='f',typ='R'),
15372              C16 =SIMP(statut='f',typ='R'),
15373              C17 =SIMP(statut='f',typ='R'),
15374              C18 =SIMP(statut='f',typ='R'),
15375              C19 =SIMP(statut='f',typ='R'),
15376              C20 =SIMP(statut='f',typ='R'),
15377              C21 =SIMP(statut='f',typ='R'),
15378              C22 =SIMP(statut='f',typ='R'),
15379              C23 =SIMP(statut='f',typ='R'),
15380              C24 =SIMP(statut='f',typ='R'),
15381              C25 =SIMP(statut='f',typ='R'),
15382              C26 =SIMP(statut='f',typ='R'),
15383              C27 =SIMP(statut='f',typ='R'),
15384              C28 =SIMP(statut='f',typ='R'),
15385              C29 =SIMP(statut='f',typ='R'),
15386              C30 =SIMP(statut='f',typ='R'),
15387              C31 =SIMP(statut='f',typ='R'),
15388              C32 =SIMP(statut='f',typ='R'),
15389              C33 =SIMP(statut='f',typ='R'),
15390              C34 =SIMP(statut='f',typ='R'),
15391              C35 =SIMP(statut='f',typ='R'),
15392              C36 =SIMP(statut='f',typ='R'),
15393              C37 =SIMP(statut='f',typ='R'),
15394              C38 =SIMP(statut='f',typ='R'),
15395              C39 =SIMP(statut='f',typ='R'),
15396              C40 =SIMP(statut='f',typ='R'),
15397              C41 =SIMP(statut='f',typ='R'),
15398              C42 =SIMP(statut='f',typ='R'),
15399              C43 =SIMP(statut='f',typ='R'),
15400              C44 =SIMP(statut='f',typ='R'),
15401              C45 =SIMP(statut='f',typ='R'),
15402              C46 =SIMP(statut='f',typ='R'),
15403              C47 =SIMP(statut='f',typ='R'),
15404              C48 =SIMP(statut='f',typ='R'),
15405              C49 =SIMP(statut='f',typ='R'),
15406              C50 =SIMP(statut='f',typ='R'),
15407            ),
15408            UMAT_FO   =FACT(statut='f',
15409              C1 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15410              C2 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15411              C3 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15412              C4 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15413              C5 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15414              C6 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15415              C7 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15416              C8 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15417              C9 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15418              C10 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15419              C11 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15420              C12 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15421              C13 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15422              C14 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15423              C15 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15424              C16 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15425              C17 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15426              C18 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15427              C19 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15428              C20 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15429              C21 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15430              C22 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15431              C23 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15432              C24 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15433              C25 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15434              C26 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15435              C27 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15436              C28 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15437              C29 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15438              C30 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15439              C31 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15440              C32 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15441              C33 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15442              C34 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15443              C35 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15444              C36 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15445              C37 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15446              C38 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15447              C39 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15448              C40 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15449              C41 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15450              C42 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15451              C43 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15452              C44 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15453              C45 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15454              C46 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15455              C47 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15456              C48 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15457              C49 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15458              C50 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
15459            ),
15460 ### UMAT
15461
15462
15463            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15464 )  ;
15465
15466 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR NISTOR I.NISTOR 
15467 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15468 # ======================================================================
15469 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15470 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15471 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15472 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15473 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15474 #
15475 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15476 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15477 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15478 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15479 #
15480 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15481 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15482 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15483 # ======================================================================
15484 # RESPONSABLE BODEL C.BODEL
15485 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
15486                       reentrant='n',
15487             fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", 
15488             UIinfo={"groupes":("Matrices et vecteurs",)},
15489          SOUS_STRUC      =FACT(statut='o',max='**',
15490            NOM             =SIMP(statut='o',typ='TXM' ),
15491            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
15492            ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
15493            TRANS           =SIMP(statut='o',typ='R',max=3),
15494          ),
15495          LIAISON         =FACT(statut='o',max='**',
15496            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
15497            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
15498            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
15499            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
15500            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
15501                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
15502            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15503            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15504            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15505            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15506            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
15507          ),
15508          VERIF           =FACT(statut='f',max='**',
15509 #  dans la doc U stop_erreur est obligatoire         
15510            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15511            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
15512            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15513          ),
15514          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
15515 )  ;
15516 #& MODIF COMMANDE  DATE 22/03/2011   AUTEUR COURTOIS M.COURTOIS 
15517 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15518 # ======================================================================
15519 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
15520 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15521 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15522 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15523 # (AT YOUR OPTION) ANY LATER VERSION.
15524 #
15525 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15526 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15527 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15528 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15529 #
15530 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15531 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15532 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15533 # ======================================================================
15534 # RESPONSABLE COURTOIS M.COURTOIS
15535 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster,
15536                 fr="Définir une fonction réelle de deux variables réelles",
15537                 reentrant='n',UIinfo={"groupes":("Fonctions",)},
15538          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
15539                  EXCLUS('FONCTION','NOM_PARA_FONC',),
15540                  ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
15541          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
15542          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
15543          PARA            =SIMP(statut='o',typ='R',max='**'),
15544          FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
15545          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
15546          DEFI_FONCTION   =FACT(statut='f',max='**',
15547            VALE            =SIMP(statut='o',typ='R',max='**'),
15548            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
15549                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction."),
15550            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15551            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15552          ),
15553          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
15554                                fr="Type d'interpolation pour le paramètre de la nappe"),
15555          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15556          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15557          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1, 2) ),
15558          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
15559          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15560 )  ;
15561 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15562 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15563 # ======================================================================
15564 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15565 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15566 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15567 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15568 # (AT YOUR OPTION) ANY LATER VERSION.
15569 #
15570 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15571 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15572 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15573 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15574 #
15575 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15576 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15577 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15578 # ======================================================================
15579 # RESPONSABLE KHAM M.KHAM
15580 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=table_fonction,
15581                    fr="Définition d'un obstacle plan perpendiculaire à une structure filaire",
15582                    reentrant='n',
15583          UIinfo={"groupes":("Modélisation",)},
15584          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
15585                              into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
15586                              "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
15587                              "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
15588                              "GUID_B_CARTE_900","GUID_C_CARTE_900",
15589                              "GUID_D_CARTE_900","GUID_E_CARTE_900",
15590                              "GUID_F_CARTE_900","GUID_A_CARTE_1300",
15591                              "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
15592                              "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
15593                              "GUID_F_CARTE_1300","GUID_A_CARSP_900",
15594                              "GUID_B_CARSP_900","GUID_C_CARSP_900",
15595                              "GUID_D_CARSP_900","GUID_E_CARSP_900",
15596                              "GUID_F_CARSP_900","GUID_A_CARSP_1300",
15597                              "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
15598                              "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
15599                              "GUID_F_CARSP_1300","GUID_A_GCONT_900",
15600                              "GUID_B_GCONT_900","GUID_C_GCONT_900",
15601                              "GUID_D_GCONT_900","GUID_E_GCONT_900",
15602                              "GUID_F_GCONT_900","GUID_A_GCONT_1300",
15603                              "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
15604                              "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
15605                              "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
15606                              "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
15607                              "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
15608                              "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
15609                              "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
15610                              "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
15611                              "GUID_F_GCOMB_1300",) ),
15612          VALE            =SIMP(statut='f',typ='R',max='**'),
15613          VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
15614 )  ;
15615 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15616 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15617 # ======================================================================
15618 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15619 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15620 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15621 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15622 # (AT YOUR OPTION) ANY LATER VERSION.
15623 #
15624 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15625 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15626 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15627 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15628 #
15629 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15630 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15631 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15632 # ======================================================================
15633 # RESPONSABLE GNICOLAS G.NICOLAS
15634 DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
15635                     fr="Définition d'un paramètre de sensibilité",
15636                     ang="Definition of a sensitive parameter",
15637                     reentrant='n',
15638             UIinfo={"groupes":("Fonctions",)},
15639          NOM_RESU        =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU",
15640                                fr="Nom du concept créé",
15641                                ang="Name of the concept"),
15642          VALE            =SIMP(statut='o',typ='R',
15643                                fr="Valeur du parametre",
15644                                ang="Value of the parameter"),
15645          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15646 )  ;
15647 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15648 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15649 # ======================================================================
15650 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
15651 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15652 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15653 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15654 # (AT YOUR OPTION) ANY LATER VERSION.
15655 #
15656 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15657 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15658 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15659 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15660 #
15661 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15662 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15663 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15664 # ======================================================================
15665 # RESPONSABLE ASSIRE A.ASSIRE
15666
15667 from Macro.defi_part_feti_ops import defi_part_feti_ops
15668
15669 DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
15670                      reentrant='n',UIinfo={"groupes":("Modélisation",)},
15671                      fr="Creation partitionnement en sous-domaines pour FETI",
15672          regles=(UN_PARMI('MAILLAGE','MODELE'),PRESENT_PRESENT('MODELE','EXCIT'),),
15673
15674          NB_PART         =SIMP(statut='o',typ='I',val_min=2),
15675          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
15676          MODELE          =SIMP(statut='f',typ=modele_sdaster),
15677          EXCIT           =FACT(statut='f',max='**',
15678            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
15679
15680          # Methode de partitionnement
15681          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="KMETIS" ),
15682
15683          LOGICIEL      =SIMP(statut='f',typ='TXM'),
15684
15685          # Corrige les problemes possibles de non-connexite des sous-domaines
15686          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
15687
15688          # Permet de grouper des mailles dans un meme sous-doamine
15689          GROUPAGE        =FACT(statut='f',max='**',
15690            GROUP_MA       =SIMP(statut='o',typ=grma,),
15691                           ),
15692          # Permet d'appliquer des poids sur certaines mailles
15693          POIDS_MAILLES   =FACT(statut='f',max='**',
15694            GROUP_MA       =SIMP(statut='o',typ=grma,),
15695            POIDS          =SIMP(statut='f',typ='I',val_min=2),
15696                           ),
15697          # Prefixe pour le nom des group_ma definissant les sous-domaines
15698          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
15699
15700          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
15701          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
15702
15703          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
15704          # Note : le calcul FETI sera impossible
15705          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
15706            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
15707              ),
15708
15709          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
15710 );
15711 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15712 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15713 # ======================================================================
15714 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
15715 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15716 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15717 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15718 # (AT YOUR OPTION) ANY LATER VERSION.
15719 #
15720 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15721 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15722 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15723 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15724 #
15725 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15726 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15727 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15728 # ======================================================================
15729 # RESPONSABLE ASSIRE A.ASSIRE
15730
15731 DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
15732                     fr="Creation partitionnement en sous-domaines pour FETI",
15733                     docu="U4.23.05",reentrant='n',
15734                     UIinfo={"groupes":("Modélisation",)},
15735          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
15736          MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
15737          NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
15738          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
15739          DEFI          =FACT(statut='f',max='**',
15740            GROUP_MA        =SIMP(statut='o',typ=grma),
15741            GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
15742          ),
15743          EXCIT           =FACT(statut='f',max='**',
15744            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
15745          ),
15746 );
15747 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15748 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15749 # ======================================================================
15750 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
15751 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15752 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15753 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15754 # (AT YOUR OPTION) ANY LATER VERSION.
15755 #
15756 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15757 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15758 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15759 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15760 #
15761 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15762 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15763 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15764 # ======================================================================
15765 # RESPONSABLE ASSIRE A.ASSIRE
15766
15767 DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29,
15768                     fr="Creation partitionnement en sous-domaines pour FETI",
15769                     docu="U4.00.00",
15770                     UIinfo={"groupes":("Modélisation",)},
15771          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
15772          MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
15773          NB_PART         =SIMP(statut='o',typ='I',),
15774
15775          # Methode de partitionnement
15776          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="KMETIS" ),
15777
15778          LOGICIEL      =SIMP(statut='f',typ='TXM'),
15779
15780          # Corrige les problemes possibles de non-connexite des sous-domaines
15781          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
15782
15783          # Permet de grouper des mailles dans un meme sous-doamine
15784          GROUPAGE        =FACT(statut='f',max='**',
15785            GROUP_MA       =SIMP(statut='o',typ=grma,),
15786                           ),
15787          # Permet d'appliquer des poids sur certaines mailles
15788          POIDS_MAILLES   =FACT(statut='f',max='**',
15789            GROUP_MA       =SIMP(statut='o',typ=grma,),
15790            POIDS          =SIMP(statut='f',typ='I'),
15791                           ),
15792          # Prefixe pour le nom des group_ma definissant les sous-domaines
15793          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
15794
15795          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
15796          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
15797
15798          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
15799          # Note : le calcul FETI sera impossible
15800          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
15801            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
15802              ),
15803
15804          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
15805
15806 );
15807 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15808 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15809 # ======================================================================
15810 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
15811 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15812 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15813 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15814 # (AT YOUR OPTION) ANY LATER VERSION.
15815 #
15816 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15817 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15818 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15819 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15820 #
15821 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15822 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15823 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15824 # ======================================================================
15825 # RESPONSABLE COURTOIS M.COURTOIS
15826
15827 from Macro.defi_sol_miss_ops import defi_sol_miss_ops
15828
15829 DEFI_SOL_MISS = MACRO(nom="DEFI_SOL_MISS",op=defi_sol_miss_ops, sd_prod=table_sdaster,
15830                       fr="Définition des données de sol pour Miss", reentrant='n',
15831                       UIinfo={"groupes":("Modélisation","Outils-métier",)},
15832    MATERIAU = FACT(statut='o', max='**',
15833             fr="Définition des matériaux",
15834       E         = SIMP(statut='o', typ='R', fr="Module d'Young"),
15835       NU        = SIMP(statut='o', typ='R', fr="Coefficient de Poisson"),
15836       RHO       = SIMP(statut='o', typ='R', fr="Masse volumique"),
15837       AMOR_HYST = SIMP(statut='o', typ='R', fr="Coefficient d'amortissement"),
15838    ),
15839    COUCHE = FACT(statut='o', max='**',
15840                  fr="Définition des couches",
15841       regles=(AU_MOINS_UN('EPAIS','SUBSTRATUM'),),
15842       SUBSTRATUM= SIMP(statut='f', typ='TXM', into=("OUI","NON"),),
15843       EPAIS     = SIMP(statut='f', typ='R', fr="Epaisseur de la couche"),
15844       RECEPTEUR = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),),
15845       SOURCE    = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),),
15846       NUME_MATE = SIMP(statut='o', typ='I', fr="Numéro du matériau"),
15847    ),
15848    TITRE = SIMP(statut='f', typ='TXM', max='**',
15849                 fr="Titre de la table produite"),
15850    INFO  = SIMP(statut='f', typ='I', defaut=1, into=(1,2)),
15851 )
15852
15853 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
15854 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15855 # ======================================================================
15856 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15857 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15858 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15859 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15860 # (AT YOUR OPTION) ANY LATER VERSION.
15861 #
15862 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15863 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15864 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15865 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15866 #
15867 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15868 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15869 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15870 # ======================================================================
15871 # RESPONSABLE ADOBES A.ADOBES
15872 DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
15873                     fr="Définition d'un spectre d'excitation turbulente",
15874                     reentrant='n',
15875             UIinfo={"groupes":("Modélisation","Outils-métier",)},
15876          regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
15877                           'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
15878                           'SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
15879          SPEC_LONG_COR_1 =FACT(statut='f',
15880            LONG_COR        =SIMP(statut='o',typ='R' ),
15881            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15882            VISC_CINE       =SIMP(statut='o',typ='R' ),
15883          ),
15884          SPEC_LONG_COR_2 =FACT(statut='f',
15885            regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
15886            LONG_COR        =SIMP(statut='o',typ='R' ),
15887            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15888            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
15889            PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
15890            BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
15891          ),
15892          SPEC_LONG_COR_3 =FACT(statut='f',
15893            regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
15894            LONG_COR        =SIMP(statut='o',typ='R' ),
15895            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15896            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
15897            PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
15898            BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
15899            PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
15900            BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
15901          ),
15902          SPEC_LONG_COR_4 =FACT(statut='f',
15903            regles=(ENSEMBLE('BETA','GAMMA'),),
15904            LONG_COR        =SIMP(statut='o',typ='R' ),
15905            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15906            TAUX_VIDE       =SIMP(statut='o',typ='R' ),
15907            BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
15908            GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
15909          ),
15910          SPEC_CORR_CONV_1=FACT(statut='f',
15911            LONG_COR_1      =SIMP(statut='o',typ='R' ),
15912            LONG_COR_2      =SIMP(statut='f',typ='R' ),
15913            VITE_FLUI       =SIMP(statut='o',typ='R' ),
15914            RHO_FLUI        =SIMP(statut='o',typ='R' ),
15915            FREQ_COUP       =SIMP(statut='f',typ='R' ),
15916            K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
15917            D_FLUI          =SIMP(statut='o',typ='R' ),
15918            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
15919            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
15920            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
15921                                  into=("AU_YANG","GENERALE","CORCOS") ),
15922          ),
15923          SPEC_CORR_CONV_2=FACT(statut='f',
15924            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15925            VITE_FLUI       =SIMP(statut='o',typ='R' ),
15926            FREQ_COUP       =SIMP(statut='f',typ='R' ),
15927            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
15928                                  into=("AU_YANG","GENERALE","CORCOS",) ),
15929            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
15930            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
15931          ),
15932          SPEC_FONC_FORME =FACT(statut='f',
15933            regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
15934                    ENSEMBLE('INTE_SPEC','FONCTION'),),
15935            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
15936            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
15937            GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
15938            NOEUD           =SIMP(statut='o',typ=no),
15939            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
15940            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
15941          ),
15942          SPEC_EXCI_POINT =FACT(statut='f',
15943            regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
15944            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
15945            GRAPPE_2        =SIMP(statut='f',typ='TXM',
15946                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
15947 #  Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
15948            b_inte_spec =BLOC(condition = "INTE_SPEC != None",
15949              NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
15950              ANGL            =SIMP(statut='o',typ='R',max='**'),
15951              NOEUD           =SIMP(statut='o',typ=no,max='**'),
15952            ),
15953            b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
15954              RHO_FLUI        =SIMP(statut='o',typ='R' ),
15955              NOEUD           =SIMP(statut='o',typ=no),
15956            ),
15957            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
15958            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
15959          ),
15960          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15961 )  ;
15962 #& MODIF COMMANDE  DATE 25/01/2011   AUTEUR PELLET J.PELLET 
15963 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15964 # ======================================================================
15965 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
15966 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15967 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15968 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15969 # (AT YOUR OPTION) ANY LATER VERSION.
15970 #
15971 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15972 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15973 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15974 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15975 #
15976 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15977 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15978 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15979 # ======================================================================
15980 # RESPONSABLE BODEL C.BODEL
15981 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
15982                     fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique",
15983                     reentrant='n',
15984             UIinfo={"groupes":("Maillage","Dynamique",)},
15985          regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'),
15986                  PRESENT_PRESENT('CYCLIQUE','SECTEUR'),
15987                  EXCLUS('SOUS_STRUC','SECTEUR'),
15988                  PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
15989                  PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
15990          CYCLIQUE    =FACT(statut='f',max='**',
15991            regles=(UN_PARMI('MODE_CYCL','MAILLAGE'),
15992                    PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),),
15993            MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
15994            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
15995            MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
15996          ),
15997          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
15998          SQUELETTE       =SIMP(statut='f',typ=squelette ),
15999          RECO_GLOBAL     =FACT(statut='f',max='**',
16000            regles=(EXCLUS('TOUT','GROUP_NO_1'),
16001                    PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
16002                    PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
16003                    PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
16004                    PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
16005            TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
16006            GROUP_NO_1      =SIMP(statut='f',typ=grno),
16007            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
16008            GROUP_NO_2      =SIMP(statut='f',typ=grno),
16009            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
16010            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
16011            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16012            DIST_REFE       =SIMP(statut='f',typ='R' ),
16013          ),
16014          NOM_GROUP_MA    =FACT(statut='f',max='**',
16015            NOM             =SIMP(statut='o',typ='TXM' ),
16016            SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
16017            GROUP_MA        =SIMP(statut='o',typ=grma),
16018          ),
16019          EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16020          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
16021          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
16022          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
16023          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16024          TRANS           =SIMP(statut='f',typ='R',min=3,max=3),
16025          ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
16026          SOUS_STRUC      =FACT(statut='f',max='**',
16027            regles=(UN_PARMI('TOUT','MAILLE','GROUP_MA'),),
16028            NOM             =SIMP(statut='o',typ='TXM' ),
16029            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
16030            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
16031            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16032          ),
16033          SECTEUR         =FACT(statut='f',max='**',
16034            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
16035            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
16036            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16037          ),
16038          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16039 )  ;
16040 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
16041 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16042 # ======================================================================
16043 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16044 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16045 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16046 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16047 # (AT YOUR OPTION) ANY LATER VERSION.
16048 #
16049 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16050 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16051 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16052 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16053 #
16054 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16055 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16056 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16057 # ======================================================================
16058 # RESPONSABLE CANO V.CANO
16059 DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
16060             UIinfo={"groupes":("Modélisation","Thermique",)},
16061               fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
16062                 +" pour les calculs métallurgiques.",
16063          HIST_EXP        =FACT(statut='o',max='**',
16064            VALE            =SIMP(statut='o',typ='R',max='**'),
16065          ),
16066          TEMP_MS         =FACT(statut='o',max='**',
16067            SEUIL           =SIMP(statut='o',typ='R'),
16068            AKM             =SIMP(statut='o',typ='R'),
16069            BKM             =SIMP(statut='o',typ='R'),
16070            TPLM            =SIMP(statut='o',typ='R'),
16071          ),
16072          GRAIN_AUST      =FACT(statut='f',max='**',
16073            DREF           =SIMP(statut='f',typ='R'),
16074            A              =SIMP(statut='f',typ='R'),
16075          ),
16076 )  ;
16077 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
16078 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16079 # ======================================================================
16080 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16081 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16082 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16083 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16084 # (AT YOUR OPTION) ANY LATER VERSION.
16085 #
16086 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16087 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16088 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16089 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16090 #
16091 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16092 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16093 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16094 # ======================================================================
16095 # RESPONSABLE PELLET J.PELLET
16096 def depl_interne_prod(DEPL_GLOBAL,**args ):
16097     if AsType(DEPL_GLOBAL)     == cham_no_sdaster: return cham_no_sdaster
16098     if AsType(DEPL_GLOBAL)     == evol_elas      : return evol_elas
16099     if AsType(DEPL_GLOBAL)     == dyna_trans     : return dyna_trans
16100     if AsType(DEPL_GLOBAL)     == dyna_harmo     : return dyna_harmo
16101     if AsType(DEPL_GLOBAL)     == mode_meca      : return mode_meca
16102     if AsType(DEPL_GLOBAL)     == mode_meca_c    : return mode_meca_c
16103     raise AsException("type de concept resultat non prevu")
16104
16105 DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n',
16106             UIinfo={"groupes":("Matrices et vecteurs",)},
16107                   fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
16108          DEPL_GLOBAL     =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,mode_meca_c,evol_elas,dyna_trans,dyna_harmo),),
16109          SUPER_MAILLE    =SIMP(statut='o',typ=ma,),
16110          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
16111 )  ;
16112 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
16113 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16114 # ======================================================================
16115 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16116 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16117 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16118 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16119 # (AT YOUR OPTION) ANY LATER VERSION.
16120 #
16121 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16122 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16123 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16124 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16125 #
16126 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16127 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16128 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16129 # ======================================================================
16130 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
16131 DETRUIRE=MACRO(nom="DETRUIRE",op=-7,
16132             UIinfo={"groupes":("Gestion du travail",)},
16133               fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX",
16134              op_init=ops.detruire,
16135              regles=(UN_PARMI('CONCEPT','OBJET',),),
16136             CONCEPT     =FACT(statut='f',max='**',
16137                 regles=(DERIVABLE('NOM'),),
16138                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
16139                 SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
16140                                  fr="Paramètre de sensibilité.",
16141                                  ang="Sensitivity parameter",max='**'),
16142             ),
16143             OBJET  =FACT(statut='f',max='**',
16144                CLASSE      =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'),
16145                CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
16146                POSITION    =SIMP(statut='f',typ='I'  ,max='**'),
16147             ),
16148             ALARME        =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',),
16149             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),
16150 );
16151 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
16152 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16153 # ======================================================================
16154 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16155 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16156 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16157 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16158 # (AT YOUR OPTION) ANY LATER VERSION.
16159 #
16160 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16161 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16162 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16163 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16164 #
16165 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16166 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16167 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16168 # ======================================================================
16169 # RESPONSABLE ZENTNER I.ZENTNER
16170 DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction,
16171                      fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP",
16172                      reentrant='n',
16173             UIinfo={"groupes":("Résolution","Dynamique",)},
16174          BASE_MODALE     =FACT(statut='o',
16175            regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
16176            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
16177            BANDE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2),
16178            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
16179            b_bande =BLOC(condition = "BANDE != None",
16180              AMOR_UNIF       =SIMP(statut='o',typ='R' ),
16181            ),
16182            b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
16183              AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
16184            ),
16185          ),
16186          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
16187 # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait
16188 # ainsi rajouter un bloc du genre  b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')",
16189          EXCIT           =FACT(statut='o',
16190            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
16191            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
16192            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
16193            MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16194            b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')",
16195              regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),),
16196              NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**'),
16197              NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
16198              b_nume_ordre_i  =BLOC(condition = "NUME_ORDRE_I != None",
16199                regles=(EXCLUS('CHAM_NO','NOEUD'),),
16200 # on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO'
16201 # cela impliquerait d'enlever la valeur par defaut a GRANDEUR
16202                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
16203                CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
16204                NOEUD           =SIMP(statut='f',typ=no,max='**'),
16205                b_noeud         =BLOC(condition = "NOEUD != None",
16206                   NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
16207                 ),
16208                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
16209                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
16210 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP
16211                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
16212              ),
16213              b_noeud_i       =BLOC(condition = "NOEUD_I != None",
16214                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
16215                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**'),
16216                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**'),
16217                NOEUD           =SIMP(statut='o',typ=no,max='**'),
16218                NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
16219 # ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans
16220 # NOEUD_I, NOM_CMP_I ...  => modif. du Fortran
16221                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
16222                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
16223 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I
16224                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
16225              ),
16226            ),
16227            b_modal_oui = BLOC(condition = "(MODAL == 'OUI')",
16228 # dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes
16229              NUME_ORDRE_I    =SIMP(statut='o',typ='I',max='**'),
16230              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
16231              GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
16232                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
16233              DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
16234 # dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO   On devrait
16235 # pouvoir supprimer GRANDEUR et DERIVATION ici
16236            ),
16237
16238          ),
16239          REPONSE         =FACT(statut='f',
16240            regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
16241            DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
16242            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
16243            FREQ_MIN        =SIMP(statut='f',typ='R' ),
16244            FREQ_MAX        =SIMP(statut='f',typ='R' ),
16245            PAS             =SIMP(statut='f',typ='R' ),
16246            b_defaut_freq   =BLOC(condition = "FREQ_MIN == NONE",
16247               FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
16248               NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
16249            ),
16250          ),
16251          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16252          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16253 )  ;
16254 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
16255 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16256 # ======================================================================
16257 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
16258 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16259 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16260 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16261 # (AT YOUR OPTION) ANY LATER VERSION.
16262 #
16263 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16264 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16265 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16266 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16267 #
16268 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16269 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16270 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16271 # ======================================================================
16272 # RESPONSABLE ZENTNER I.ZENTNER
16273
16274 from Macro.dyna_iss_vari_ops import dyna_iss_vari_ops
16275 #
16276 def dyna_iss_vari_prod(self, FONC_SIGNAL,**args):
16277    if FONC_SIGNAL !=None : 
16278        return tran_gene
16279    else:  
16280       return  table_fonction
16281    raise AsException("type de concept resultat non prevu")
16282 #
16283     
16284       
16285 DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI",op=dyna_iss_vari_ops ,   sd_prod=dyna_iss_vari_prod,
16286                     fr="Calcul du spectre de réponse ou de la reponse temporelle sismique incoherente par decomposition spectrale",
16287                     reentrant='n',
16288                     UIinfo={"groupes":("Outils métier",)},
16289          regles=(UN_PARMI('FONC_SIGNAL','NB_FREQ'),),                                    
16290          FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster) ),
16291          NB_FREQ       =SIMP(statut='f',typ='I' ),
16292          NOM_CMP       =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
16293          PRECISION     =SIMP(statut='f',typ='R',defaut=0.999 ),
16294          INTERF           =FACT(statut='o',
16295               GROUP_NO_INTERF =SIMP(statut='o',typ=grno ,max='**'), 
16296               MODE_INTERF  =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT")),
16297          ),      
16298          MATR_COHE       =FACT(statut='o',
16299               VITE_ONDE       =SIMP(statut='o',typ='R'),
16300               PARA_ALPHA     =SIMP(statut='f',typ='R',defaut=0.5),           
16301          ),
16302 #        LIST_FREQ        =SIMP(statut='o',typ='liste' ),  
16303          UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33),
16304          UNITE_RESU_IMPE  = SIMP(statut='f',typ='I',defaut=32), 
16305          TYPE             = SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII"), defaut="ASCII"),
16306 #         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") , validators=NoRepeat(),max=3,defaut="DEPL" ),
16307 #
16308          MATR_GENE         = FACT(statut='o',
16309             MATR_MASS     = SIMP(statut='o',typ=(matr_asse_gene_r ) ),
16310             MATR_RIGI     = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c ) ),
16311             MATR_AMOR     = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), 
16312          ),         
16313 #         
16314         INFO           =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)),
16315 #         
16316          b_type_trans = BLOC(condition="FONC_SIGNAL !=None",                               
16317                         FREQ_MAX       =SIMP(statut='f',typ='R' ),
16318                         FREQ_PAS       =SIMP(statut='f',typ='R' ),    
16319                         regles=( ENSEMBLE('FREQ_MAX','FREQ_PAS'),  )                                  
16320                         
16321                         ),
16322                               
16323         b_type_spec = BLOC(condition="NB_FREQ != None",          
16324                        FREQ_INIT       =SIMP(statut='o',typ='R' ),
16325                        FREQ_PAS     =SIMP(statut='o',typ='R' ),    
16326                        OPTION        = SIMP(statut='f',typ='TXM',into=("TOUT","DIAG"),defaut="TOUT"),
16327                        ),
16328          
16329          
16330          )  ;
16331 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
16332 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16333 # ======================================================================
16334 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
16335 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16336 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16337 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16338 # (AT YOUR OPTION) ANY LATER VERSION.
16339 #
16340 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16341 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16342 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16343 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16344 #
16345 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16346 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16347 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16348 # ======================================================================
16349 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
16350 def dyna_line_harm_prod(MATR_RIGI,**args):
16351    if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo
16352    elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo
16353    elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
16354    elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene
16355    elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene
16356    raise AsException("type de concept resultat non prevu")
16357
16358 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
16359                     fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
16360                     reentrant='f',
16361             UIinfo={"groupes":("Résolution","Dynamique",)},
16362          regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
16363                  PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
16364                  PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
16365                  UN_PARMI('FREQ','LIST_FREQ'),
16366                  CONCEPT_SENSIBLE('ENSEMBLE'),),
16367          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
16368          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
16369          MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
16370          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
16371                                               ,matr_asse_gene_r,matr_asse_gene_c ) ),
16372          MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
16373          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
16374          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
16375          MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
16376          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16377          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
16378          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
16379          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
16380          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire",
16381              RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
16382          ),
16383          EXCIT           =FACT(statut='o',max='**',
16384            regles=(UN_PARMI('VECT_ASSE','CHARGE'),
16385                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
16386                   ),
16387            VECT_ASSE       =SIMP(statut='f',position='global',typ=(cham_no_sdaster,vect_asse_gene) ),
16388            CHARGE          =SIMP(statut='f',position='global', typ=char_meca ),
16389            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
16390            FONC_MULT_C     =SIMP(statut='f',typ=(fonction_c,formule_c) ),
16391            COEF_MULT_C     =SIMP(statut='f',typ='C' ),
16392            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16393            COEF_MULT       =SIMP(statut='f',typ='R' ),
16394            PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16395            PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
16396          ),
16397          b_modele_char =BLOC(condition = " CHARGE != None ",
16398                        MODELE    =SIMP(statut='o',typ=modele_sdaster ),
16399                        ),
16400          b_modele_vect =BLOC(condition = " VECT_ASSE != None ",
16401                        MODELE    =SIMP(statut='f',typ=modele_sdaster ),
16402                        ),
16403          EXCIT_RESU      =FACT(statut='f',max='**',
16404            RESULTAT        =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
16405            COEF_MULT_C     =SIMP(statut='o',typ='C' ),
16406          ),
16407          b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)",
16408                            fr="Methode de resolution matrice generalisee",
16409           SOLVEUR         =FACT(statut='d',
16410            METHODE         =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS",) ),
16411
16412            b_ldlt_gene      =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
16413              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
16414            ),
16415            b_ldlt_mumps_gene =BLOC( condition = "METHODE=='LDLT' or METHODE=='MUMPS' ",
16416                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
16417              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
16418              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
16419            ),
16420            b_mumps_gene     =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
16421              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
16422              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
16423              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
16424              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
16425              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
16426              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
16427              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
16428              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16429              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16430            ),
16431           ),
16432          ),
16433
16434          b_matr_phys =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_depl_r,matr_asse_pres_c,)",
16435                            fr="Methode de resolution matrice sur ddl physique",
16436           SOLVEUR         =FACT(statut='d',
16437            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS",) ),
16438
16439            b_mult_front_phys=BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
16440              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
16441            ),
16442
16443            b_ldlt_phys      =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
16444              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
16445            ),
16446            b_ldlt_mult_mumps_phys =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
16447                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
16448              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
16449              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
16450            ),
16451            b_mumps_phys     =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
16452              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
16453              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
16454              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),         
16455              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
16456              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
16457              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
16458              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
16459              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16460              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16461              ),
16462           ),
16463          ),
16464
16465          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16466          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
16467                                fr="Liste des paramètres de sensibilité.",
16468                                ang="List of sensitivity parameters"),
16469 )  ;
16470 # Rajouter test icompatibilite vect_asse et sensibilite
16471 # Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation
16472 #  presents dans le Fortran
16473 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
16474 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16475 # ======================================================================
16476 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
16477 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16478 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16479 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16480 # (AT YOUR OPTION) ANY LATER VERSION.
16481 #
16482 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16483 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16484 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16485 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16486 #
16487 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16488 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16489 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16490 # ======================================================================
16491 # RESPONSABLE BOYERE E.BOYERE
16492 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
16493                     fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
16494                     reentrant='f',
16495             UIinfo={"groupes":("Résolution","Dynamique",)},
16496 #         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
16497          regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),
16498                  CONCEPT_SENSIBLE('ENSEMBLE'),),
16499          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
16500          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
16501          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
16502          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
16503          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
16504          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
16505          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
16506          NEWMARK         =FACT(statut='f',
16507            ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
16508            DELTA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
16509          ),
16510          WILSON          =FACT(statut='f',
16511            THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
16512          ),
16513          DIFF_CENTRE     =FACT(statut='f',
16514          ),
16515          ADAPT           =FACT(statut='f',
16516          ),
16517          ETAT_INIT       =FACT(statut='f',
16518            regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),
16519                    PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),),
16520            DYNA_TRANS      =SIMP(statut='f',typ=dyna_trans ),
16521            b_dyna_trans    =BLOC(condition = "DYNA_TRANS != None",
16522              regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
16523              NUME_INIT       =SIMP(statut='f',typ='I' ),
16524              INST_INIT       =SIMP(statut='f',typ='R' ),
16525              b_inst_init     =BLOC(condition = "INST_INIT != None",
16526                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16527                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
16528                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
16529                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
16530                    PRECISION       =SIMP(statut='o',typ='R',),),
16531              ),
16532            ),
16533            DEPL_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
16534            VITE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
16535            ACCE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
16536          ),
16537          EXCIT           =FACT(statut='f',max='**',
16538            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
16539                    EXCLUS('CHARGE','COEF_MULT'),
16540                    EXCLUS('FONC_MULT','COEF_MULT'),
16541                    EXCLUS('ACCE','COEF_MULT'),
16542                    PRESENT_ABSENT('ACCE','FONC_MULT'),
16543                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
16544                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
16545                    ),
16546            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
16547            CHARGE          =SIMP(statut='f',typ=char_meca ),
16548            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16549            COEF_MULT       =SIMP(statut='f',typ='R' ),
16550            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
16551            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16552            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16553            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16554            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16555            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
16556            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
16557            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
16558          ),
16559          EXCIT_RESU      =FACT(statut='f',max='**',
16560            RESULTAT        =SIMP(statut='o',typ=dyna_trans ),
16561            COEF_MULT       =SIMP(statut='o',typ='R' ),
16562          ),
16563          AMOR_MODAL      =FACT(statut='f',
16564            MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
16565            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
16566            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
16567          ),
16568
16569          SOLVEUR         =FACT(statut='d',
16570            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
16571
16572            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
16573              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
16574            ),
16575
16576            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
16577              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
16578            ),
16579
16580            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
16581                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
16582              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
16583              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
16584            ),
16585
16586            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
16587              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
16588              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
16589                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
16590                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
16591                ),
16592              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
16593                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
16594                ),
16595              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
16596              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
16597            ),
16598            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
16599              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
16600              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
16601              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
16602              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
16603              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
16604              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
16605              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
16606              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",into=("CENTRALISE","CENTRALISE")),
16607              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16608              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
16609              ),
16610
16611            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
16612              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
16613              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
16614              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
16615                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
16616                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
16617                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
16618              ),
16619              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
16620                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
16621                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
16622              ),
16623              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
16624                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
16625                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
16626              ),
16627              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
16628              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
16629            ),
16630          ),
16631
16632          INCREMENT       =FACT(statut='o',max='**',
16633            regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
16634            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
16635            FONC_INST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
16636            PAS             =SIMP(statut='f',typ='R' ),
16637            b_pas           =BLOC(condition = "PAS != None",
16638                INST_INIT       =SIMP(statut='f',typ='R' ),
16639                INST_FIN        =SIMP(statut='f',typ='R' ),
16640            ),
16641            b_list_fonc     =BLOC(condition = "LIST_INST != None or FONC_INST != None",
16642                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
16643                NUME_FIN        =SIMP(statut='f',typ='I' ),
16644                INST_FIN        =SIMP(statut='f',typ='R' ),
16645            ),
16646            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
16647            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
16648            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
16649            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
16650            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
16651            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
16652            PAS_CALCUL      =SIMP(statut='f',typ='I',defaut= 1 ),
16653            PAS_MINI         =SIMP(statut='f',typ='R' ),
16654          ),
16655          ARCHIVAGE       =FACT(statut='f',
16656            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
16657            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
16658            PAS_ARCH        =SIMP(statut='f',typ='I' ),
16659            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
16660          ),
16661          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
16662                                fr="Liste des paramétres de sensibilité.",
16663                                ang="List of sensitivity parameters",
16664          ),
16665          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16666          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
16667 )  ;
16668 #& MODIF COMMANDE  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
16669 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16670 # ======================================================================
16671 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
16672 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16673 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16674 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16675 # (AT YOUR OPTION) ANY LATER VERSION.
16676 #
16677 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16678 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16679 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16680 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16681 #
16682 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16683 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16684 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16685 # ======================================================================
16686 # RESPONSABLE GREFFET N.GREFFET
16687 #
16688 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
16689             fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
16690             UIinfo={"groupes":("Résolution","Dynamique",)},
16691          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
16692                  CONCEPT_SENSIBLE('ENSEMBLE'),),
16693          MODELE          =SIMP(statut='o',typ=modele_sdaster),
16694          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
16695          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
16696          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
16697          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
16698          EXCIT           =FACT(statut='f',max='**',
16699            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
16700                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
16701                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
16702                    ),
16703            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
16704                                  into=("FIXE_CSTE","SUIV","DIDI")),
16705            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
16706            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16707            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16708            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16709            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16710            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16711            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
16712            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
16713            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
16714          ),
16715          EXCIT_GENE      =FACT(statut='f',max='**',
16716            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
16717            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
16718          ),
16719          CONTACT         =SIMP(statut='f',typ=char_contact),
16720          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
16721                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
16722                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
16723                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16724                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
16725                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16726               ),
16727          AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),),
16728          AMOR_MODAL      =FACT(statut='f',
16729            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
16730            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
16731            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
16732            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
16733            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
16734            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
16735          ),
16736          PROJ_MODAL      =FACT(statut='f',max='**',
16737            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
16738            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
16739            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
16740            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
16741            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
16742            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
16743            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
16744            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
16745            ACCE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),           
16746          ),
16747 #-------------------------------------------------------------------         
16748          COMP_INCR       =C_COMP_INCR(),
16749 #-------------------------------------------------------------------         
16750          COMP_ELAS       =C_COMP_ELAS('DYNA_NON_LINE'),
16751 #-------------------------------------------------------------------
16752          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
16753          ETAT_INIT       =FACT(statut='o',
16754            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
16755                    EXCLUS('EVOL_NOLI','DEPL',),
16756                    EXCLUS('EVOL_NOLI','VITE'),
16757                    EXCLUS('EVOL_NOLI','ACCE'),
16758                    EXCLUS('EVOL_NOLI','SIGM',),
16759                    EXCLUS('EVOL_NOLI','VARI',),
16760                    EXCLUS('NUME_ORDRE','INST'), ),
16761            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
16762            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
16763            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
16764            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
16765            VARI            =SIMP(statut='f',typ=cham_elem),
16766            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
16767            NUME_ORDRE      =SIMP(statut='f',typ='I'),
16768            INST            =SIMP(statut='f',typ='R'),
16769            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16770            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
16771                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
16772            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
16773                PRECISION       =SIMP(statut='o',typ='R',),),
16774            NUME_DIDI       =SIMP(statut='f',typ='I'),
16775            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
16776          ),),
16777          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
16778          ETAT_INIT       =FACT(statut='f',
16779            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
16780                    EXCLUS('EVOL_NOLI','DEPL',),
16781                    EXCLUS('EVOL_NOLI','VITE'),
16782                    EXCLUS('EVOL_NOLI','ACCE'),
16783                    EXCLUS('EVOL_NOLI','SIGM',),
16784                    EXCLUS('EVOL_NOLI','VARI',),
16785                    EXCLUS('NUME_ORDRE','INST'), ),
16786            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
16787            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
16788            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
16789            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
16790            VARI            =SIMP(statut='f',typ=cham_elem),
16791            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
16792            NUME_ORDRE      =SIMP(statut='f',typ='I'),
16793            INST            =SIMP(statut='f',typ='R'),
16794            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16795            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
16796                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
16797            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
16798                PRECISION       =SIMP(statut='o',typ='R',),),
16799            NUME_DIDI       =SIMP(statut='f',typ='I'),
16800            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
16801          ),),
16802 #-------------------------------------------------------------------
16803          INCREMENT       =C_INCREMENT(),
16804 #-------------------------------------------------------------------
16805          SCHEMA_TEMPS     =FACT(statut='o',
16806             SCHEMA          =SIMP(statut='o',min=1,max=1,typ='TXM',
16807             into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),),
16808             COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
16809             b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
16810                PHI          =SIMP(statut='f',typ='R',defaut= 1.05),),
16811                
16812             b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
16813                BETA         =SIMP(statut='f',typ='R',defaut= 0.25),
16814                GAMMA        =SIMP(statut='f',typ='R',defaut= 0.5),),
16815                
16816             b_hht     = BLOC(condition="SCHEMA=='HHT'",
16817                ALPHA        =SIMP(statut='f',typ='R',defaut= -0.3 ),
16818                MODI_EQUI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
16819                
16820             b_theta   = BLOC(condition="SCHEMA=='THETA_METHODE'",
16821                THETA         =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),),
16822
16823             b_krenk   = BLOC(condition="SCHEMA=='KRENK'",
16824                KAPPA         =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),), 
16825                
16826             b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
16827                STOP_CFL     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
16828                FORMULATION  =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
16829                
16830             b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
16831                FORMULATION  =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),),
16832          ),
16833 #-------------------------------------------------------------------         
16834          NEWTON          =C_NEWTON(),
16835 #-------------------------------------------------------------------
16836          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
16837 #-------------------------------------------------------------------
16838          CONVERGENCE     =C_CONVERGENCE(),
16839 #-------------------------------------------------------------------
16840          SOLVEUR         =C_SOLVEUR(),
16841 #-------------------------------------------------------------------
16842          OBSERVATION     =C_OBSERVATION(),
16843 #-------------------------------------------------------------------
16844          SUIVI_DDL       =C_SUIVI_DDL(),
16845 #------------------------------------------------------------------- 
16846          AFFICHAGE       =C_AFFICHAGE(),
16847 #-------------------------------------------------------------------
16848          ARCHIVAGE       =C_ARCHIVAGE(),
16849 #-------------------------------------------------------------------
16850          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
16851            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
16852            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.),
16853                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
16854            RIGI_GEOM     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
16855            bloc_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')",
16856               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
16857                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
16858                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
16859                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
16860                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
16861                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
16862                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
16863                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
16864                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
16865                                           'PRES31','PRES32','PRES33','VARI','LAG_GV')),),
16866            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
16867            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
16868            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
16869            PAS_CALC       = SIMP(statut='f',typ='I' ),
16870            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16871               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
16872                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
16873               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
16874                  PRECISION       =SIMP(statut='o',typ='R',),),
16875          ),
16876          MODE_VIBR     =FACT(statut='f',min=1,max=1,
16877            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ),
16878            NB_FREQ          =SIMP(statut='f',typ='I',max=1,defaut=3,
16879                             fr="Nombre de fréquences propres à calculer"),
16880            BANDE            =SIMP(statut='f',typ='R',min=2,max=2,
16881                             fr="Valeur des deux fréquences délimitant la bande de recherche",),
16882            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
16883            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
16884            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
16885            PAS_CALC       = SIMP(statut='f',typ='I' ),
16886            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16887               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
16888                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
16889               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
16890                  PRECISION       =SIMP(statut='o',typ='R',),),
16891          ),
16892 #-------------------------------------------------------------------
16893            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
16894                                fr="Liste des paramètres de sensibilité",
16895                                ang="List of sensitivity parameters"),
16896 #-------------------------------------------------------------------
16897          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
16898          b_info=BLOC(condition="(INFO==2)",
16899                fr="filtre les messages émis dans le .mess selon le type de message demandé",
16900                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
16901                                into=("CONTACT",
16902                                      "MECA_NON_LINE",
16903                                      "PILOTAGE",
16904                                      "FACTORISATION",
16905                                      "APPARIEMENT"),
16906                              ),
16907                     ),
16908          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16909 )
16910 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
16911 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16912 # ======================================================================
16913 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16914 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16915 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16916 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16917 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16918 #
16919 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16920 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16921 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16922 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16923 #
16924 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16925 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16926 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16927 # ======================================================================
16928 # RESPONSABLE ADOBES A.ADOBES
16929 DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction,
16930                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
16931                      reentrant='n',
16932             UIinfo={"groupes":("Résolution","Dynamique",)},
16933          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
16934          EXCIT           =FACT(statut='o',
16935            INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
16936          ),
16937          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
16938          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16939 )  ;
16940 #& MODIF COMMANDE  DATE 31/01/2011   AUTEUR GREFFET N.GREFFET 
16941 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16942 # ======================================================================
16943 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
16944 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16945 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16946 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16947 # (AT YOUR OPTION) ANY LATER VERSION.
16948 #
16949 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16950 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16951 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16952 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16953 #
16954 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16955 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16956 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16957 # ======================================================================
16958 # RESPONSABLE BOYERE E.BOYERE
16959 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
16960                      fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées"
16961                         +" par superposition modale ou par sous structuration",
16962                      reentrant='f',
16963             UIinfo={"groupes":("Résolution","Dynamique",)},
16964       regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
16965               PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
16966          METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
16967                                into=("EULER","NEWMARK","DEVOGE","ADAPT_ORDRE1","ADAPT_ORDRE2","ITMI") ),
16968          MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
16969          RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
16970          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
16971          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
16972          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
16973          MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
16974          MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_meca),),
16975
16976          COUPLAGE_EDYOS     =FACT(statut='f',max=1,         
16977                              VITE_ROTA          = SIMP(statut='o',typ='R' ),
16978                              PAS_TPS_EDYOS      = SIMP(statut='o',typ='R' ),
16979          ),
16980
16981          PALIER_EDYOS      =FACT(statut='f',max='**',
16982          regles=(PRESENT_ABSENT('UNITE','GROUP_NO'),
16983                  PRESENT_ABSENT('UNITE','TYPE_EDYOS'),
16984                  EXCLUS('GROUP_NO','NOEUD'),),
16985                                      UNITE       = SIMP(statut='f',typ='I',),
16986                                      GROUP_NO    = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
16987                                      NOEUD       = SIMP(statut='f',typ=no),
16988                                      TYPE_EDYOS  = SIMP(statut='f',typ='TXM',
16989                                      into=("PAPANL","PAFINL","PACONL","PAHYNL",),),
16990          ),
16991
16992          ETAT_INIT       =FACT(statut='f',
16993            regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
16994                    EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
16995            RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
16996            b_resu_gene     =BLOC(condition = "RESU_GENE != None",
16997              INST_INIT       =SIMP(statut='f',typ='R' ),
16998              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
16999              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
17000                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
17001              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
17002                 PRECISION       =SIMP(statut='o',typ='R',),),
17003            ),
17004            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
17005            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
17006          ),
17007          INCREMENT       =FACT(statut='o',max='**',
17008            INST_INIT       =SIMP(statut='f',typ='R' ),
17009            INST_FIN        =SIMP(statut='o',typ='R' ),
17010            PAS             =SIMP(statut='f',typ='R' ),
17011            VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17012            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
17013            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
17014            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
17015            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
17016            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
17017            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
17018            PAS_MAXI         =SIMP(statut='f',typ='R' ),
17019            PAS_MINI         =SIMP(statut='f',typ='R' ),
17020          ),
17021          ARCHIVAGE       =FACT(statut='f',
17022            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
17023            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
17024            PAS_ARCH        =SIMP(statut='f',typ='I' ),
17025          ),
17026
17027          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
17028          RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
17029          LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
17030
17031          EXCIT           =FACT(statut='f',max='**',
17032            regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
17033                    UN_PARMI('VECT_GENE','NUME_ORDRE',),
17034                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
17035                    PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
17036                    PRESENT_ABSENT('NUME_ORDRE','VECT_GENE','COEF_MULT'),
17037                    EXCLUS('MULT_APPUI','CORR_STAT'),
17038                    PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
17039                    PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
17040            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
17041            NUME_ORDRE      =SIMP(statut='f',typ='I' ),
17042            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17043            COEF_MULT       =SIMP(statut='f',typ='R' ),
17044            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17045            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17046            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17047            MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17048            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
17049            b_loca          =BLOC(condition= "DIRECTION != None",
17050              regles=(EXCLUS('NOEUD','GROUP_NO'),),
17051              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
17052              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
17053            ),
17054            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17055            D_FONC_DT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17056            D_FONC_DT2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17057          ),
17058          CHOC            =FACT(statut='f',max='**',
17059            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
17060                    EXCLUS('NOEUD_2','GROUP_NO_2'),
17061                    PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
17062                    PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
17063            INTITULE        =SIMP(statut='f',typ='TXM' ),
17064            GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
17065            MAILLE          =SIMP(statut='f',typ=ma,max='**'),
17066            NOEUD_1         =SIMP(statut='f',typ=no),
17067            NOEUD_2         =SIMP(statut='f',typ=no),
17068            GROUP_NO_1      =SIMP(statut='f',typ=grno),
17069            GROUP_NO_2      =SIMP(statut='f',typ=grno),
17070            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
17071            ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
17072            NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
17073            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
17074            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
17075            DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
17076            DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
17077            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
17078            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
17079            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
17080            RIGI_NOR        =SIMP(statut='f',typ='R' ),
17081            AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17082            RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17083            AMOR_TAN        =SIMP(statut='f',typ='R' ),
17084            FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","COULOMB","COULOMB_STAT_DYNA") ),
17085            b_coulomb       =BLOC(condition="FROTTEMENT=='COULOMB'",
17086                COULOMB         =SIMP(statut='o',typ='R' ),),
17087            b_coulomb_stat_dyna  =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'",
17088                COULOMB_STAT    =SIMP(statut='o',typ='R' ),
17089                COULOMB_DYNA    =SIMP(statut='o',typ='R' ),),
17090            LAME_FLUIDE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17091            b_lame          =BLOC(condition="LAME_FLUIDE=='OUI'",
17092                ALPHA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17093                BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17094                CHI             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17095                DELTA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17096            ),
17097          ),
17098          VERI_CHOC       =FACT(statut='f',max='**',
17099            STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17100            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
17101          ),
17102          FLAMBAGE        =FACT(statut='f',max='**',
17103            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
17104                    EXCLUS('NOEUD_2','GROUP_NO_2'),),
17105            NOEUD_1         =SIMP(statut='f',typ=no),
17106            NOEUD_2         =SIMP(statut='f',typ=no),
17107            GROUP_NO_1      =SIMP(statut='f',typ=grno),
17108            GROUP_NO_2      =SIMP(statut='f',typ=grno),
17109            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
17110            ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
17111            NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
17112            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
17113            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
17114            DIST_1          =SIMP(statut='f',typ='R' ),
17115            DIST_2          =SIMP(statut='f',typ='R' ),
17116            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
17117            RIGI_NOR        =SIMP(statut='f',typ='R' ),
17118            FNOR_CRIT       =SIMP(statut='f',typ='R' ),
17119            FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
17120            RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
17121          ),
17122          ANTI_SISM       =FACT(statut='f',max='**',
17123            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
17124                    UN_PARMI('NOEUD_2','GROUP_NO_2'),),
17125            NOEUD_1         =SIMP(statut='f',typ=no),
17126            NOEUD_2         =SIMP(statut='f',typ=no),
17127            GROUP_NO_1      =SIMP(statut='f',typ=grno),
17128            GROUP_NO_2      =SIMP(statut='f',typ=grno),
17129            RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17130            RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17131            SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17132            C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17133            PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17134            DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
17135          ),
17136          RELA_EFFO_DEPL  =FACT(statut='f',max='**',
17137            NOEUD           =SIMP(statut='o',typ=no),
17138            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
17139            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
17140            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17141          ),
17142          RELA_TRANSIS    =FACT(statut='f',max='**',
17143            NOEUD           =SIMP(statut='o',typ=no),
17144            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
17145            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
17146            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17147          ),
17148          RELA_EFFO_VITE  =FACT(statut='f',max='**',
17149            NOEUD           =SIMP(statut='o',typ=no),
17150            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
17151            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
17152            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17153          ),
17154          b_itmi          =BLOC(condition = "METHODE=='ITMI'",
17155                 regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
17156                 BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
17157                 NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
17158                 ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17159                 PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
17160                 CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17161                 NB_MODE         =SIMP(statut='f',typ='I' ),
17162                 NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
17163                 TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
17164          ),
17165          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
17166          IMPRESSION      =FACT(statut='f',max='**',
17167            regles=(EXCLUS('TOUT','NIVEAU'),),
17168            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17169            NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
17170            INST_INIT       =SIMP(statut='f',typ='R' ),
17171            INST_FIN        =SIMP(statut='f',typ='R' ),
17172          ),
17173
17174
17175          SOLVEUR         =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
17176          METHODE         =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS","MULT_FRONT",) ),
17177
17178
17179            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
17180              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
17181            ),
17182
17183            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
17184              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17185            ),
17186
17187            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
17188                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
17189              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
17190              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17191            ),
17192            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
17193              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
17194              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
17195              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
17196              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
17197              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
17198              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
17199              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
17200              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17201              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17202              ),
17203          ),
17204
17205
17206          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
17207  )  ;
17208 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17209 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17210 # ======================================================================
17211 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17212 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17213 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17214 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
17215 # (AT YOUR OPTION) ANY LATER VERSION.
17216 #
17217 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
17218 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
17219 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
17220 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
17221 #
17222 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17223 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17224 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17225 # ======================================================================
17226 # RESPONSABLE PELLET J.PELLET
17227 ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
17228                    UIinfo={"groupes":("Impression","Utilitaires",)},
17229                    fr="Engendre des tests pour la non régression du code (pour développeurs)",
17230          UNITE           =SIMP(statut='f',typ='I',defaut=8),
17231          FORMAT          =SIMP(statut='f',typ='TXM',into=("OBJET",) ),
17232          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE20.13"),
17233          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-10"),
17234 #============================================================================
17235          b_aster     =BLOC( condition = "FORMAT==None",
17236             CO              =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster),
17237                                   validators=NoRepeat(),max='**'),
17238             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMME","SOMM_ABS","MAX","MIN") ),
17239          ),
17240 #============================================================================
17241          b_objet     =BLOC( condition = "FORMAT=='OBJET'",
17242                             regles=(UN_PARMI('TOUT','CO'),),
17243             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17244             CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
17245             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME",) ),
17246          ),
17247 )  ;
17248 #& MODIF COMMANDE  DATE 14/02/2011   AUTEUR GREFFET N.GREFFET 
17249 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17250 # ======================================================================
17251 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
17252 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17253 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17254 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17255 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17256 #                                                                       
17257 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17258 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17259 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17260 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17261 #                                                                       
17262 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17263 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17264 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17265 # ======================================================================
17266 # RESPONSABLE GREFFET N.GREFFET
17267
17268 #  ENVOI DES CHAMPS CINEMATIQUES VIA YACS POUR COUPLAGE IFS 
17269 #
17270 ENV_CINE_YACS=PROC(nom             = "ENV_CINE_YACS",
17271                    op              = 111,
17272                    UIinfo          = {"groupes":("Résultats et champs",)},
17273                    fr              = "Envoi des champs de deplacement et vitesse via YACS pour Couplage de Code_Aster et Saturne",
17274                    regles          = (EXCLUS('ETAT_INIT','RESULTAT',),),
17275                    MATR_PROJECTION = SIMP(statut='o', typ=corresp_2_mailla,),
17276                    VIS_A_VIS = FACT(statut='o', max='**',
17277                                    GROUP_MA_1=SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
17278                                    GROUP_NO_2=SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
17279                    RESULTAT  = FACT(statut='f',
17280                                    NUME_ORDRE=SIMP(statut='o', typ='I',              validators=NoRepeat()),
17281                                    RESU      =SIMP(statut='o', typ=resultat_sdaster, validators=NoRepeat()),),
17282                    ETAT_INIT = FACT(statut='f',
17283                                     DEPL=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),
17284                                     VITE=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),
17285                                     ACCE=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),),
17286                    INST         = SIMP(statut='o',typ='R', ),
17287                    PAS             = SIMP(statut='o',typ='R', ),
17288                    NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
17289                    INFO            = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
17290 ) ;
17291 #& MODIF COMMANDE  DATE 01/03/2011   AUTEUR ASSIRE A.ASSIRE 
17292 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17293 # ======================================================================
17294 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
17295 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17296 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17297 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17298 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17299 #
17300 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17301 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17302 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17303 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17304 #
17305 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17306 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17307 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17308 # ======================================================================
17309 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
17310
17311 from Macro.exec_logiciel_ops import exec_logiciel_ops
17312 def exec_logiciel_prod(self, MAILLAGE, **args):
17313    if MAILLAGE != None:
17314       mcf = MAILLAGE[0]
17315       self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster)
17316    return None
17317
17318 EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",op=exec_logiciel_ops, sd_prod=exec_logiciel_prod,
17319                       fr="Exécute un logiciel ou une commande système depuis Aster",
17320                       UIinfo={"groupes":("Gestion du travail","Outils-métier",)},
17321       
17322       regles = ( AU_MOINS_UN('LOGICIEL', 'MAILLAGE', 'SALOME'), 
17323                  EXCLUS('MACHINE_DISTANTE','MAILLAGE'), 
17324                  EXCLUS('MAILLAGE','SALOME'),
17325                  ),
17326
17327       LOGICIEL = SIMP(statut='f', typ='TXM'),
17328       ARGUMENT = SIMP(statut='f', max='**', typ='TXM'),
17329
17330
17331       MACHINE_DISTANTE = FACT(statut='f',
17332         SSH_ADRESSE  = SIMP(statut='o', typ='TXM', val_min=1, val_max=255,
17333                            fr="Adresse IP ou nom de la machine sur laquelle le logiciel/script sera exécuté via SSH"),
17334         SSH_LOGIN    = SIMP(statut='f', typ='TXM', val_min=1, val_max=255,
17335                            fr="Nom d'utilisateur sur la machine distante"),
17336         SSH_PORT     = SIMP(statut='f', typ='I', val_min=1, val_max=65535, defaut=22,
17337                            fr="Port SSH de la machien distante"),
17338       ),
17339
17340
17341       MAILLAGE = FACT(statut='f',
17342          FORMAT     = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")),
17343          UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16,
17344                            fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"),
17345          UNITE      = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19,
17346                            fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"),
17347          MAILLAGE   = SIMP(statut='o', typ=CO),
17348       ),
17349
17350
17351       SALOME = FACT(statut='f',
17352            regles=(UN_PARMI('CHEMIN_SCRIPT', 'UNITE_SCRIPT'),
17353                    PRESENT_PRESENT('NOM_PARA','VALE'),),
17354          CHEMIN_SCRIPT     = SIMP(statut='f', typ='TXM',
17355                                fr="Chemin du script Salome"),
17356          UNITE_SCRIPT      = SIMP(statut='f', typ='I', val_min=80, val_max=99,
17357                                fr="Unité logique du script Salome"),
17358          SALOME_HOST       = SIMP(statut='f', typ='TXM', defaut='localhost',
17359                                fr="Machine sur laquelle tourne Salome"),
17360          SALOME_PORT       = SIMP(statut='f', typ='I', val_min=2800, val_max=2900, defaut=2810,
17361                                fr="Port de l'instance Salome (2810 ou supérieur)"),
17362          SALOME_RUNAPPLI   = SIMP(statut='f', typ='TXM',
17363                                fr="Chemin vers le script de lancement runAppli de Salome"),
17364          FICHIERS_ENTREE   = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**',
17365                                fr="Liste des fichiers d'entrée du script Salome"),
17366          FICHIERS_SORTIE   = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**',
17367                                fr="Liste des fichiers générés par le script Salome"),
17368          NOM_PARA          = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), 
17369                                fr="Liste des noms des paramètres à modifier dans le script Salome"),
17370          VALE              = SIMP(statut='f',typ='TXM',max='**',
17371                                fr="Valeur des paramètres à) modifier dans le script Salome"),
17372       ),
17373
17374       CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1,
17375                               fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"),
17376       
17377       INFO     = SIMP(statut='f', typ='I', defaut=2, into=(1,2),),
17378 )
17379 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17380 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17381 # ======================================================================
17382 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17383 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17384 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17385 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17386 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17387 #
17388 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17389 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17390 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17391 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17392 #
17393 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17394 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17395 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17396 # ======================================================================
17397 # RESPONSABLE NISTOR I.NISTOR
17398
17399 def extr_mode_prod(FILTRE_MODE,**args):
17400   vale=FILTRE_MODE[0]['MODE']
17401   if AsType(vale) == mode_meca   : return mode_meca
17402   if AsType(vale) == mode_meca_c : return mode_meca_c
17403   if AsType(vale) == mode_gene   : return mode_gene
17404   raise AsException("type de concept resultat non prevu")
17405
17406 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
17407                reentrant='n',fr="Extraire séléctivement des modes des structures de données modales",
17408             UIinfo={"groupes":("Résolution","Dynamique",)},
17409          FILTRE_MODE     =FACT(statut='o',max='**',
17410            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
17411            MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
17412            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
17413            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17414            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17415            NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17416            FREQ_MIN        =SIMP(statut='f',typ='R' ),
17417            CRIT_EXTR       =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ),
17418            b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
17419              FREQ_MAX        =SIMP(statut='o',typ='R' ),
17420              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
17421            ),
17422            b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
17423              regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),),
17424              SEUIL           =SIMP(statut='f',typ='R'),
17425              SEUIL_X         =SIMP(statut='f',typ='R'),
17426              SEUIL_Y         =SIMP(statut='f',typ='R'),
17427              SEUIL_Z         =SIMP(statut='f',typ='R'),
17428            ),    
17429          ),
17430          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
17431          IMPRESSION      =FACT(statut='f',
17432            CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17433            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
17434          ),
17435 )  ;
17436 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17437 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17438 # ======================================================================
17439 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17440 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17441 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17442 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
17443 # (AT YOUR OPTION) ANY LATER VERSION.
17444 #
17445 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
17446 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
17447 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
17448 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
17449 #
17450 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17451 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17452 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17453 # ======================================================================
17454 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
17455
17456 def extr_resu_prod(RESULTAT,**args):
17457   if AsType(RESULTAT) == evol_elas    : return evol_elas
17458   if AsType(RESULTAT) == evol_noli    : return evol_noli
17459   if AsType(RESULTAT) == evol_ther    : return evol_ther
17460   if AsType(RESULTAT) == evol_varc    : return evol_varc
17461   if AsType(RESULTAT) == dyna_trans   : return dyna_trans
17462   if AsType(RESULTAT) == dyna_harmo   : return dyna_harmo
17463   if AsType(RESULTAT) == acou_harmo   : return acou_harmo
17464   if AsType(RESULTAT) == mode_meca    : return mode_meca
17465   if AsType(RESULTAT) == mode_acou    : return mode_acou
17466   if AsType(RESULTAT) == mult_elas    : return mult_elas
17467   if AsType(RESULTAT) == fourier_elas : return fourier_elas
17468
17469   raise AsException("type de concept resultat non prevu")
17470
17471 EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
17472             UIinfo={"groupes":("Résultats et champs",)},
17473             fr="Extraire des champs au sein d'une SD Résultat",
17474          regles=(CONCEPT_SENSIBLE('SEPARE'),
17475                  #REUSE_SENSIBLE(),
17476                  DERIVABLE('RESULTAT'),),
17477          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
17478                                                mode_acou,evol_ther,evol_noli,evol_varc,
17479                                                mult_elas,fourier_elas,fourier_ther ) ),
17480
17481          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
17482                                    fr="Liste des paramètres de sensibilité.",
17483                                    ang="List of sensitivity parameters"),
17484
17485          ARCHIVAGE       =FACT(statut='f',
17486            regles=(  UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE',
17487                         'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE',
17488                         'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ),
17489                      EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ),   ),
17490            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
17491            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
17492            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
17493            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
17494               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
17495            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
17496               PRECISION       =SIMP(statut='o',typ='R',),),
17497            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
17498            PAS_ARCH        =SIMP(statut='f',typ='I'),
17499            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17500            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
17501            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
17502            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
17503            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
17504            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
17505            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17506            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
17507            NOM_CAS         =SIMP(statut='f',typ='TXM'),
17508                                ),
17509
17510          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
17511 )  ;
17512 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17513 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17514 # ======================================================================
17515 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
17516 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17517 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17518 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17519 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17520 #                                                                       
17521 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17522 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17523 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17524 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17525 #                                                                       
17526 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17527 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17528 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17529 # ======================================================================
17530 # RESPONSABLE COURTOIS M.COURTOIS
17531
17532 def extr_table_prod(TYPE_RESU,**args):
17533   defs = globals()
17534   typ = TYPE_RESU.lower()
17535   if defs.get(typ) is not None:
17536      return defs[typ]
17537   raise AsException("type de concept resultat non prevu")
17538
17539 EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
17540             UIinfo={"groupes":("Résultats et champs","Tables")},
17541          fr="Extraire d'une table des concepts Code_Aster",
17542          TYPE_RESU       =SIMP(statut='o',typ='TXM',),
17543
17544          TABLE           =SIMP(statut='o',typ=(table_sdaster,table_container)),
17545
17546          NOM_PARA        =SIMP(statut='o',typ='TXM'),
17547
17548          FILTRE          =FACT(statut='f',min=1,max='**',
17549            NOM_PARA        =SIMP(statut='o',typ='TXM'),
17550            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
17551                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
17552                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
17553            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
17554               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
17555               VALE            =SIMP(statut='f',typ='R'),
17556               VALE_I          =SIMP(statut='f',typ='I'),
17557               VALE_C          =SIMP(statut='f',typ='C'),
17558               VALE_K          =SIMP(statut='f',typ='TXM'),),
17559
17560            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
17561            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
17562          ),
17563
17564          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
17565 )  ;
17566 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
17567 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17568 # ======================================================================
17569 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
17570 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17571 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17572 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17573 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17574 #                                                                       
17575 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17576 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17577 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17578 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17579 #                                                                       
17580 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17581 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17582 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17583 # ======================================================================
17584 # RESPONSABLE PELLET J.PELLET
17585
17586 def factoriser_prod(MATR_ASSE,**args):
17587   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
17588   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
17589   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
17590   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
17591   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
17592   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
17593   raise AsException("type de concept resultat non prevu")
17594
17595 FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod,
17596                fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+
17597                   "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué",
17598                reentrant='f', UIinfo={"groupes":("Résolution",)},
17599          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
17600                  EXCLUS('BLOC_FIN','DDL_FIN'),),
17601          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
17602                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
17603
17604          # mots clés pour solveur LDLT et MULT_FRONT et MUMPS:
17605          STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17606          NPREC           =SIMP(statut='f',typ='I',defaut=8),
17607
17608          # mots clés pour solveur LDLT :
17609          BLOC_DEBUT      =SIMP(statut='f',typ='I',val_min=1,),
17610          DDL_DEBUT       =SIMP(statut='f',typ='I',val_min=1,),
17611          BLOC_FIN        =SIMP(statut='f',typ='I',val_min=1,),
17612          DDL_FIN         =SIMP(statut='f',typ='I',val_min=1,),
17613
17614          # mots clés pour solveur MUMPS :
17615          TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
17616          PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
17617          PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
17618          ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
17619          OUT_OF_CORE  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17620          LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17621          
17622          # mots clés pour solveur GCPC et PETSc :
17623          PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
17624          b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
17625            NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
17626            REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
17627            RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
17628          ),
17629          b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
17630            REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
17631            RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
17632          ),
17633          b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
17634                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
17635            RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
17636          ),
17637
17638          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
17639          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
17640 )  ;
17641 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17642 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17643 # ======================================================================
17644 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17645 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17646 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17647 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17648 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17649 #
17650 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17651 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17652 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17653 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17654 #
17655 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17656 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17657 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17658 # ======================================================================
17659 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
17660 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE",
17661             UIinfo={"groupes":("Gestion du travail",)},
17662 #
17663 # FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError,
17664 # NonConvergenceError..., erreurs <S> ou erreurs <F> récupérées).
17665 # En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN.
17666 # Pour cela, on force certains mots-clés dans Execution/E_JDC.py.
17667
17668          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
17669                                typ='TXM',defaut="NON",into=("OUI","NON",) ), 
17670          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
17671                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
17672          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
17673                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
17674          UNITE           =SIMP(statut='f',typ='I',defaut=6),  
17675 )  ;
17676 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17677 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17678 # ======================================================================
17679 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17680 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17681 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17682 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17683 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17684 #
17685 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17686 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17687 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17688 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17689 #
17690 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17691 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17692 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17693 # ======================================================================
17694 # RESPONSABLE ADOBES A.ADOBES
17695 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
17696                     reentrant='n',fr="Crée une fonction constante paramétrée par l'abscisse curviligne",
17697             UIinfo={"groupes":("Fonctions",)},
17698          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
17699 )  ;
17700 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17701 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17702 # ======================================================================
17703 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17704 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17705 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17706 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17707 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17708 #
17709 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17710 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17711 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17712 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17713 #
17714 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17715 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17716 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17717 # ======================================================================
17718 # RESPONSABLE DURAND C.DURAND
17719 def formule_prod(self,VALE,VALE_C,**args):
17720    if   VALE   != None:
17721       return formule
17722    elif VALE_C != None:
17723       return formule_c
17724
17725 def form_pyth_ops(self, d):
17726    NOM_PARA = self.etape['NOM_PARA']
17727    VALE    =self.etape['VALE']
17728    VALE_C  =self.etape['VALE_C']
17729    if type(NOM_PARA) not in (list, tuple):
17730       NOM_PARA = [NOM_PARA,]
17731    for para in NOM_PARA:
17732        if para.strip() != para:
17733            raise AsException("nom de paramètre invalide (contient des blancs) : %s" % repr(para))
17734    if self.sd == None:
17735       return
17736    if VALE     != None :
17737       texte = ''.join(VALE.splitlines())
17738    elif VALE_C != None :
17739       texte = ''.join(VALE_C.splitlines())
17740    self.sd.setFormule(NOM_PARA, texte.strip())
17741
17742 FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5,
17743              sd_prod=formule_prod,UIinfo={"groupes":("Fonctions",)},
17744              fr="Définit une formule réelle ou complexe à partir de son expression mathématique",
17745          regles=(UN_PARMI('VALE','VALE_C',),),
17746          VALE     =SIMP(statut='f',typ='TXM'),
17747          VALE_C   =SIMP(statut='f',typ='TXM'),
17748          NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
17749 );
17750 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17751 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17752 # ======================================================================
17753 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17754 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17755 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17756 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17757 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17758 #
17759 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17760 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17761 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17762 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17763 #
17764 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17765 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17766 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17767 # ======================================================================
17768 # RESPONSABLE ZENTNER I.ZENTNER
17769 GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction,
17770                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale",
17771                     reentrant='n',
17772             UIinfo={"groupes":("Fonctions",)},
17773          INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
17774          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
17775          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
17776          b_interpol_oui    =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee",
17777            DUREE_TIRAGE    =SIMP(statut='f',typ='R' ),
17778            FREQ_INIT       =SIMP(statut='f',typ='R' ),
17779            FREQ_FIN        =SIMP(statut='f',typ='R' ),
17780              ),
17781          NB_POIN         =SIMP(statut='f',typ='I'),
17782          NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
17783          INIT_ALEA       =SIMP(statut='f',typ='I'),
17784          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
17785          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
17786 )  ;
17787 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17788 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17789 # ======================================================================
17790 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
17791 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17792 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17793 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17794 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17795 #                                                                       
17796 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17797 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17798 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17799 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17800 #                                                                       
17801 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17802 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17803 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17804 # ======================================================================
17805 # RESPONSABLE ZENTNER I.ZENTNER
17806 def gene_matr_alea_prod(MATR_MOYEN,**args ):
17807   if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
17808   if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
17809   raise AsException("type de concept resultat non prevu")
17810
17811 GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
17812 #sd_prod=matr_asse_gene_r,
17813 sd_prod=gene_matr_alea_prod,
17814                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",
17815                reentrant='n',
17816             UIinfo={"groupes":("Matrices et vecteurs",)},
17817    MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
17818
17819 #    cas matrice generalisee 
17820    b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
17821            COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
17822                                 fr="coefficient de variation de la matrice a generer" ),
17823            ),
17824 #    cas macr_elem_dyna 
17825    b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
17826            fr="cas macr_elem_dyna (sous-structuratio)",
17827            COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
17828                                 fr="coefficient de variation de la matrice de raideur" ),
17829            COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
17830                                 fr="coefficient de variation de la matrice de masse" ),
17831            COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
17832                                 fr="coefficient de variation de la matrice d'amortissement" ),),
17833
17834    INIT_ALEA    =SIMP(statut='f',typ='I'),
17835 ) ;
17836    
17837 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17838 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17839 # ======================================================================
17840 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
17841 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17842 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17843 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17844 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17845 #                                                                       
17846 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17847 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17848 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17849 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17850 #                                                                       
17851 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17852 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17853 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17854 # ======================================================================
17855 # RESPONSABLE ZENTNER I.ZENTNER
17856 from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init
17857 GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
17858                op_init=gene_vari_alea_init,op=gene_vari_alea_ops,
17859                sd_prod=reel,reentrant='n',
17860                fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
17861                UIinfo={"groupes":("Fonctions",)},
17862    TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
17863    b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
17864            VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
17865            BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
17866            COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
17867              ),
17868    b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
17869            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
17870            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
17871              ),
17872    b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
17873            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
17874            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
17875            BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
17876              ),
17877    INIT_ALEA       =SIMP(statut='f',typ='I'),
17878 )
17879 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17880 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17881 # ======================================================================
17882 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17883 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17884 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17885 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
17886 # (AT YOUR OPTION) ANY LATER VERSION.
17887 #
17888 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
17889 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
17890 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
17891 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
17892 #
17893 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17894 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17895 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17896 # ======================================================================
17897 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
17898 IMPR_CO=PROC(nom="IMPR_CO",op=17,
17899             UIinfo={"groupes":("Impression","Utilitaires",)},
17900              fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)",
17901          regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
17902
17903          UNITE           =SIMP(statut='f',typ='I',defaut=8),
17904          NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ),
17905          ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
17906          CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
17907          BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ),
17908          CONCEPT    =FACT(statut='f',max='**',
17909              regles=(DERIVABLE('NOM'),),
17910              NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
17911              SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
17912                                  fr="Paramètre de sensibilité.",
17913                                  ang="Sensitivity parameter",max='**'),),        
17914          CHAINE          =SIMP(statut='f',typ='TXM'),
17915          POSITION        =SIMP(statut='f',typ='I',defaut=1),
17916          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17917 )  ;
17918 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR TORKHANI M.TORKHANI 
17919 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17920 # ======================================================================
17921 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
17922 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17923 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17924 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17925 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17926 #                                                                       
17927 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17928 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17929 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17930 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17931 #                                                                       
17932 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17933 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17934 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17935 # ======================================================================
17936 # RESPONSABLE Mohamed TORKHANI
17937
17938 from Macro.impr_diag_campbell_ops import impr_diag_campbell_ops
17939
17940 IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL",op=impr_diag_campbell_ops, fr="Tracé du Diagramme de Campbell",
17941             UIinfo={"groupes":("Impression","Outils-métier",)},
17942             MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
17943             MODES           =SIMP(statut='o',typ=table_container),
17944             NFREQ_CAMP      =SIMP(statut='o',typ='I' ),
17945             TYP_PREC        =SIMP(statut='f',typ='I',defaut= 1, into=(1,2) ),
17946             TYP_TRI         =SIMP(statut='f',typ='I',defaut= 2, into=(0,1,2) ),
17947             UNIT_FLE        =SIMP(statut='o',typ='I' ,val_min=1),
17948             UNIT_TOR        =SIMP(statut='o',typ='I' ,val_min=1),
17949             UNIT_LON        =SIMP(statut='o',typ='I' ,val_min=1),
17950             UNIT_TOT        =SIMP(statut='o',typ='I' ,val_min=1),
17951             UNIT_INT        =SIMP(statut='o',typ='I' ,val_min=1),
17952             L_S             =SIMP(statut='f',typ='R', defaut= 1., max='**'),
17953 );
17954 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
17955 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17956 # ======================================================================
17957 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
17958 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17959 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17960 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17961 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17962 #                                                                       
17963 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17964 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17965 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17966 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17967 #                                                                       
17968 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17969 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17970 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17971 # ======================================================================
17972 # RESPONSABLE COURTOIS M.COURTOIS
17973 from Macro.impr_fonction_ops import impr_fonction_ops
17974
17975 IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
17976                  fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
17977             UIinfo={"groupes":("Impression","Fonctions",)},
17978          FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
17979                                into=("TABLEAU","AGRAF","XMGRACE",),),
17980          b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
17981                         fr="Mots-clés propres à XMGRACE",
17982            PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
17983                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
17984                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
17985            UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
17986                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
17987          ),
17988          b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
17989                         fr="Mots-clés propres à AGRAF",
17990            UNITE           =SIMP(statut='o',typ='I',defaut=25,
17991                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
17992            UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
17993                                  fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
17994          ),
17995          # unite pour TABLEAU dans le bloc de mise en forme spécifique
17996
17997          COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
17998            regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
17999            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
18000                                  fr="Fonction réelle ou complexe", ),
18001            LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
18002                                  fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
18003            FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
18004                                  fr="Fonction abscisses d'une fonction paramétrique",),
18005            ABSCISSE        =SIMP(statut='f',typ='R',max='**',
18006                                  fr="Valeurs des abscisses", ),
18007            b_fonction      =BLOC(condition = "FONCTION != None",
18008              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
18009            ),
18010            b_fonction_c  =BLOC(condition = "AsType(FONCTION) in (fonction_c, formule_c)",
18011                                  fr="Fonction complexe définie par le mot-clé fonction",
18012              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
18013            ),
18014            b_list_resu     =BLOC(condition = "LIST_RESU != None",
18015              LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
18016            ),
18017            b_fonc_x        =BLOC(condition = "FONC_X != None",
18018              FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
18019              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
18020            ),
18021            b_vale_resu     =BLOC(condition = "ABSCISSE != None",
18022              ORDONNEE      =SIMP(statut='o',typ='R',max='**',
18023                                  fr="Valeurs des ordonnées"),
18024            ),
18025
18026            # mots-clés utilisant uniquement aux formats autres que TABLEAU
18027            # mais ce serait trop pénible de devoir les supprimer quand on change de format
18028            # donc on ne les met pas dans un bloc
18029            # "pseudo" bloc mise en forme :
18030                LEGENDE         =SIMP(statut='f',typ='TXM',
18031                                     fr="Légende associée à la fonction" ),
18032                STYLE           =SIMP(statut='f',typ='I',val_min=0,
18033                                     fr="Style de la ligne représentant la fonction",),
18034                COULEUR         =SIMP(statut='f',typ='I',val_min=0,
18035                                     fr="Couleur associée à la fonction",),
18036                MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
18037                                     fr="Type du marqueur associé à la fonction",),
18038                FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
18039                                     fr="Fréquence d impression du marqueur associé à la fonction", ),
18040            # fin bloc mise en forme
18041            
18042            TRI             =SIMP(statut='f',typ='TXM',defaut="N",
18043                                  fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
18044                                  into=("N","X","Y","XY","YX") ),
18045          ),
18046          # Mise en page du tableau ou du graphique
18047          b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
18048                           fr="Mots-clés propres au format Tableau",
18049            UNITE           =SIMP(statut='o',typ='I',defaut=8,
18050                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
18051            TITRE           =SIMP(statut='f',typ='TXM',
18052                                  fr="Titre associé au graphique" ),
18053            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
18054                                  fr="Sous-titre du graphique" ),
18055            SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
18056                                  fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
18057            COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
18058                                  fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
18059            COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
18060                                  fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
18061            DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
18062                                  fr="Caractère de debut de ligne"),
18063            FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
18064                                  fr="Caractère de fin de ligne"),
18065          ),
18066          b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
18067                         fr="Mise en page du graphique",
18068            TITRE           =SIMP(statut='f',typ='TXM',
18069                                  fr="Titre associé au graphique" ),
18070            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
18071                                  fr="Sous-titre du graphique" ),
18072            BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
18073                                  fr="Intervalles de variation des abscisses"),
18074            BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
18075                                  fr="Intervalles de variation des ordonnées"),
18076            ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
18077                                  fr="Type d'échelle pour les abscisses" ),
18078            ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
18079                                  fr="Type d'échelle pour les ordonnées" ),
18080            GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
18081                                  fr="Pas du quadrillage vertical" ),
18082            GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
18083                                  fr="Pas du quadrillage horizontal" ),
18084            LEGENDE_X       =SIMP(statut='f',typ='TXM',
18085                                  fr="Légende associée à l'axe des abscisses" ),
18086            LEGENDE_Y       =SIMP(statut='f',typ='TXM',
18087                                  fr="Légende associée à l'axe des ordonnées" ),
18088          ),
18089          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
18090 )  ;
18091 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
18092 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18093 # ======================================================================
18094 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18095 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18096 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18097 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18098 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18099 #
18100 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18101 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18102 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18103 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18104 #
18105 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18106 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18107 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18108 # ======================================================================
18109 # RESPONSABLE BOYERE E.BOYERE
18110 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
18111             fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT",
18112             UIinfo={"groupes":("Impression","Dynamique",)},
18113          FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
18114          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
18115          GENE            =FACT(statut='o',max='**',
18116            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
18117                           'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
18118                    EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
18119                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
18120                    EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
18121                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
18122                    EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
18123                    EXCLUS('TOUT_CHAM','NOM_CHAM'),
18124                    EXCLUS('TOUT_PARA','NOM_PARA'),),
18125 #  faut-il faire des blocs selon le type de RESU_GENE                   
18126            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
18127            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18128            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18129            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
18130            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18131            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
18132            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18133            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18134            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
18135            TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18136            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18137            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
18138            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
18139               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
18140            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
18141               PRECISION       =SIMP(statut='o',typ='R',),),
18142            TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18143            NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
18144            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18145            NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**',into=C_NOM_CHAM_INTO(),),
18146            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18147            NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
18148            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
18149            INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18150            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18151          ),
18152 )  ;
18153 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18154 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18155 # ======================================================================
18156 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18157 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18158 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18159 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18160 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18161 #
18162 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18163 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18164 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18165 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18166 #
18167 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18168 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18169 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18170 # ======================================================================
18171 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
18172 IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
18173             UIinfo={"groupes":("Impression","Utilitaires",)},
18174                  fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)",
18175          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
18176                                into=("DISQUE","MEMOIRE","REPERTOIRE",    
18177                                      "OBJET","ATTRIBUT","SYSTEME","ENREGISTREMENT") ),
18178          b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
18179             NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
18180             NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
18181             NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
18182          ),
18183          b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
18184             NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
18185             NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
18186                                   into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
18187                                       '$$LONO','$$LUTI','$$NUM') ),
18188          ),
18189          b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
18190             CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V') ),  
18191             NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
18192                                   into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ',
18193                                       '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
18194                                       '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
18195                                       '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
18196          ),
18197          b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
18198             CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V',' '),defaut=' '),  
18199          ),
18200          b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
18201             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V',' '),defaut=' '),  
18202          ),
18203          b_enregist   =BLOC(condition = "(ENTITE=='ENREGISTREMENT')",
18204             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V'),defaut='G'),  
18205             NUMERO          =SIMP(statut='o',typ='I',val_min=1),  
18206             INFO            =SIMP(statut='f',typ='I',into=(1,2),defaut=1),  
18207          ),
18208          IMPRESSION      =FACT(statut='f',
18209            NOM             =SIMP(statut='f',typ='TXM' ),  
18210            UNITE           =SIMP(statut='f',typ='I'),  
18211          ),
18212          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
18213 )  ;
18214 #& MODIF COMMANDE  DATE 01/03/2011   AUTEUR CORUS M.CORUS 
18215 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18216 # ======================================================================
18217 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18218 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18219 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18220 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18221 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18222 #
18223 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18224 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18225 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18226 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18227 #
18228 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18229 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18230 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18231 # ======================================================================
18232 # RESPONSABLE CORUS M.CORUS
18233
18234 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
18235                     UIinfo={"groupes":("Impression","Outils-métier",)},
18236          fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO",
18237          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
18238          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
18239                                into=("MISS_3D","IDEAS") ),
18240
18241          b_ideas         =BLOC(condition = "FORMAT == 'IDEAS'",
18242            UNITE           =SIMP(statut='f',typ='I',defaut=30),
18243            VERSION          =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
18244          ),             
18245
18246 #         b_plexus         =BLOC(condition = "FORMAT == 'PLEXUS'",
18247 #           UNITE           =SIMP(statut='f',typ='I',defaut=30),
18248 #           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
18249 #         ),                      
18250
18251          b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
18252            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
18253            UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
18254            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
18255            AMOR_REDUIT     =SIMP(statut='f',typ='R'  ,max='**'),
18256            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
18257            GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
18258            GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
18259            GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
18260            GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
18261            GROUP_MA_CONTROL=SIMP(statut='f',typ=grma,max='**'),
18262            FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
18263            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18264            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18265          ),
18266
18267 #         b_cadyro        =BLOC(condition = "FORMAT == 'CADYRO'",
18268 #           SQUELETTE       =SIMP(statut='f',typ=squelette ),
18269 #           UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
18270 #           UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
18271 #           UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 28 ),
18272 #           IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18273 #           IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18274 #         ),
18275
18276 )  ;
18277 #& MODIF COMMANDE  DATE 14/02/2011   AUTEUR GREFFET N.GREFFET 
18278 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18279 # ======================================================================
18280 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18281 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18282 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18283 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18284 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18285 #                                                                       
18286 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18287 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18288 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18289 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18290 #                                                                       
18291 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18292 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18293 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18294 # ======================================================================
18295 # RESPONSABLE GREFFET N.GREFFET
18296 #
18297 # RECUPERATION DES MAILLAGES IFS VENANT DE SATURNE VIA YACS
18298 #
18299 IMPR_MAIL_YACS=PROC(nom="IMPR_MAIL_YACS",op=43,
18300             UIinfo={"groupes":("Maillage",)},
18301                fr="Lecture d'un maillage via YACS lors du Couplage de Code_Aster et Saturne",
18302          UNITE_MAILLAGE = SIMP(statut='f',typ='I',defaut=30),
18303          TYPE_MAILLAGE = SIMP(statut='o',typ='TXM',into=("SOMMET","MILIEU")),
18304          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18305 )  ;
18306 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
18307 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18308 # ======================================================================
18309 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18310 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18311 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18312 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18313 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18314 #
18315 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18316 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18317 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18318 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18319 #
18320 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18321 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18322 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18323 # ======================================================================
18324 # RESPONSABLE DEVESA G.DEVESA
18325 IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
18326             UIinfo={"groupes":("Impression","Outils-métier",)},
18327          fr="Impression des données d'entrée pour une étude sismique avec MISS3D",
18328          regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
18329                  PRESENT_PRESENT('INST_INIT','INST_FIN'),
18330                  PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),),
18331          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
18332          EXCIT           =FACT(statut='f',max='**',
18333            regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
18334            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
18335            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
18336            COEF_MULT       =SIMP(statut='f',typ='R' ),
18337          ),
18338          EXCIT_SOL       =FACT(statut='f',max='**',
18339            DIRECTION       =SIMP(statut='o',typ='R',min=3,max=3),
18340            FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
18341            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","FORC",),),
18342          ),
18343          SOURCE_SOL      =FACT(statut='f',max='**',
18344            POINT           =SIMP(statut='o',typ='R',min=3,max=3),
18345            DIRECTION       =SIMP(statut='o',typ='R',min=3,max=3),
18346            FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
18347            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","FORC",),),
18348          ),
18349          SOURCE_FLUIDE   =FACT(statut='f',max='**',
18350            POINT           =SIMP(statut='o',typ='R',min=3,max=3),
18351            FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
18352            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","FORC",),),
18353          ),
18354          DIRE_ONDE       =SIMP(statut='f',typ='R',min=3,max=3),
18355          INST_INIT       =SIMP(statut='f',typ='R' ),
18356          INST_FIN        =SIMP(statut='f',typ='R' ),
18357          FREQ_INIT       =SIMP(statut='f',typ='R' ),
18358          FREQ_FIN        =SIMP(statut='f',typ='R' ),
18359          PAS             =SIMP(statut='o',typ='R' ),
18360          UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
18361          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
18362          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
18363 )  ;
18364 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18365 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18366 # ======================================================================
18367 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
18368 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18369 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18370 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18371 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18372 #                                                                       
18373 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18374 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18375 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18376 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18377 #                                                                       
18378 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18379 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18380 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18381 # ======================================================================
18382 # RESPONSABLE FOURNIER I.FOURNIER
18383 #
18384 from Macro.impr_oar_ops import impr_oar_ops
18385 IMPR_OAR =MACRO(nom="IMPR_OAR",op= impr_oar_ops, sd_prod=None,
18386                fr="Impression au format OAR",
18387                UIinfo={"groupes":("Impression","Outils-métier",)},
18388    TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')),
18389    b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ",
18390       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
18391       DIAMETRE = SIMP(statut='o', typ='R'),
18392       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
18393       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
18394       ANGLE_C  = SIMP(statut='o', typ='R',   defaut=0.0),
18395       REVET    = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
18396       RESU_MECA = FACT(statut='f', max='**',
18397          NUM_CHAR  = SIMP(statut='o', typ='I'),
18398          TYPE      = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')),
18399          TABLE     = SIMP(statut='o', typ=table_sdaster),
18400          TABLE_S   = SIMP(statut='f', typ=table_sdaster)),
18401       RESU_THER = FACT(statut='f', max='**',
18402          NUM_TRAN  = SIMP(statut='o', typ='I'),
18403          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
18404          TABLE_TEMP= SIMP(statut='o', typ=table_sdaster),
18405          TABLE_S   = SIMP(statut='f', typ=table_sdaster),
18406          TABLE_ST  = SIMP(statut='f', typ=table_sdaster)),
18407          ),
18408    b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ",
18409       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
18410       DIAMETRE = SIMP(statut='o', typ='R'),
18411       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
18412       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
18413       RESU_MECA = FACT(statut='f', max='**',
18414          AZI       = SIMP(statut='o', typ='R'),
18415          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
18416          TABLE_F   = SIMP(statut='o', typ=table_sdaster),
18417          TABLE_P   = SIMP(statut='o', typ=table_sdaster),
18418          TABLE_CA  = SIMP(statut='o', typ=table_sdaster)),
18419       RESU_THER=FACT(statut='f', max='**',
18420          AZI       = SIMP(statut='o', typ='R'),
18421          NUM_CHAR  = SIMP(statut='o', typ='I'),
18422          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
18423          TABLE_TI  = SIMP(statut='o', typ=table_sdaster)),
18424       ),
18425    b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ",
18426       RESU_MECA = FACT(statut='o', max='**',
18427          NUM_CHAR  = SIMP(statut='o', typ='I'),
18428          TABLE     = SIMP(statut='o', typ=table_sdaster),
18429          MAILLAGE  = SIMP(statut='o', typ=maillage_sdaster)),
18430          ),
18431    UNITE = SIMP(statut='f',typ='I',defaut=38),
18432    AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
18433    );
18434 #& MODIF COMMANDE  DATE 11/05/2011   AUTEUR SELLENET N.SELLENET 
18435 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18436 # ======================================================================
18437 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18438 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18439 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18440 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
18441 # (AT YOUR OPTION) ANY LATER VERSION.
18442 #
18443 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
18444 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
18445 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
18446 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
18447 #
18448 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
18449 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18450 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18451 # ======================================================================
18452 # RESPONSABLE SELLENET N.SELLENET
18453 IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
18454             UIinfo={"groupes":("Impression","Résultats et champs",)},
18455                fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)",
18456          MODELE          =SIMP(statut='f',typ=modele_sdaster),
18457
18458          FORMAT          =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT",
18459                                  into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
18460
18461          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
18462            UNITE           =SIMP(statut='f',typ='I',defaut=8),
18463          ),
18464
18465          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
18466            UNITE           =SIMP(statut='f',typ='I',defaut=30),
18467            VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
18468          ),
18469
18470          b_format_aster  =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
18471            UNITE           =SIMP(statut='f',typ='I',defaut=26),
18472          ),
18473
18474          b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
18475            UNITE           =SIMP(statut='f',typ='I',defaut=37),
18476            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
18477          ),
18478
18479          b_format_ensight  =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT",
18480            UNITE           =SIMP(statut='f',typ='I',defaut=31),
18481          ),
18482
18483          b_format_med  =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
18484            UNITE           =SIMP(statut='f',typ='I',defaut=80),
18485          ),
18486
18487          b_format_gmsh  =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
18488            UNITE           =SIMP(statut='f',typ='I',defaut=37),
18489            VERSION         =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
18490          ),
18491
18492          b_restreint  =BLOC(condition="FORMAT=='MED'",fr="Seulement pour les fichiers MED",
18493             RESTREINT   =FACT(statut='f', max=1,
18494             fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles",
18495             regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
18496             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
18497             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
18498             TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
18499             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
18500             TOUT_GROUP_NO   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
18501             ),
18502          ),
18503
18504          RESU            =FACT(statut='o',max='**',
18505
18506            regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
18507                    EXCLUS('CHAM_GD','RESULTAT'),),
18508            MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
18509            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
18510            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
18511
18512            b_info_med  =BLOC(condition="FORMAT=='MED'",
18513              INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
18514            ),
18515
18516            b_sensibilite   =BLOC(condition="RESULTAT != None",
18517                                  fr="Définition des paramètres de sensibilité",
18518                                  ang="Definition of sensitivity parameters",
18519              regles=(DERIVABLE('RESULTAT'),),
18520              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
18521                                    fr="Liste des paramètres de sensibilité.",
18522                                    ang="List of sensitivity parameters"),),
18523
18524            b_partie        =BLOC(condition="""(AsType(RESULTAT) in (dyna_harmo, acou_harmo) or
18525                           AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""",
18526              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
18527            ),
18528            b_extrac        =BLOC(condition="RESULTAT != None",
18529                                  fr="extraction d un champ de grandeur",
18530              regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
18531                      EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
18532                             'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
18533              TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
18534              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
18535
18536              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18537              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18538              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18539              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
18540              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
18541              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
18542              ANGL            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18543              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18544              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
18545              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18546              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
18547
18548              b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
18549                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
18550                 b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
18551                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
18552                 b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
18553                      PRECISION       =SIMP(statut='o',typ='R',),),
18554              ),
18555            ),
18556 ###
18557            b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
18558              regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
18559              TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
18560              NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
18561              FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
18562            ),
18563 ###
18564            b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
18565            ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""",
18566                                 fr="sélection des composantes",
18567              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
18568              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18569              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
18570            ),
18571 ###
18572            b_med=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and(FORMAT == 'MED')""",
18573                                 fr="renommage du champ",
18574              NOM_CHAM_MED    =SIMP(statut='f',typ='TXM',validators=(LongStr(1,64),NoRepeat()),max='**'),
18575            ),
18576 ###
18577            b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
18578                                 fr="sélection des composantes et des entités toplogiques",
18579              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
18580              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
18581              TYPE_CHAM       =SIMP(statut='f',typ='TXM',defaut="SCALAIRE",
18582                                    into=("VECT_2D","VECT_3D","SCALAIRE","TENS_2D","TENS_3D"),),
18583              b_scal          =BLOC(condition = "TYPE_CHAM=='SCALAIRE'",
18584                NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),),
18585              b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
18586                NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
18587              b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
18588                NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
18589              b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
18590                NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
18591              b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
18592                NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
18593            ),
18594 ###
18595            b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
18596            ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
18597                                 fr="sélection des entités topologiques",
18598              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18599              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
18600              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
18601              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
18602              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
18603            ),
18604 ###
18605            b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')",
18606                                fr="sélection sur les valeurs",
18607              VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18608              VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18609              BORNE_SUP       =SIMP(statut='f',typ='R'),
18610              BORNE_INF       =SIMP(statut='f',typ='R'),
18611              IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
18612              FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
18613            ),
18614
18615            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
18616          ),
18617          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
18618 ) ;
18619 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
18620 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18621 # ======================================================================
18622 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
18623 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18624 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18625 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18626 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18627 #
18628 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18629 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18630 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18631 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18632 #
18633 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18634 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18635 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18636 # ======================================================================
18637 # RESPONSABLE NISTOR I.NISTOR
18638
18639 IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné",
18640             UIinfo={"groupes":("Résolution","Dynamique",)},
18641          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
18642          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
18643          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
18644                                fr="Type d analyse" ),
18645          b_dynamique  =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
18646                             fr="Recheche du nombre de fréquences propres",
18647              FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
18648              FREQ_MAX        =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
18649          ),
18650          b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
18651                             fr="Recherche du nombre de charges critiques",
18652              CHAR_CRIT_MIN   =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
18653              CHAR_CRIT_MAX   =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
18654          ),
18655          NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
18656          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
18657          PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
18658          SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
18659
18660          SOLVEUR         =FACT(statut='d',
18661            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS")),
18662              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
18663                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
18664              ),
18665              b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
18666                RENUM           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","SANS") ),
18667              ),
18668              b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
18669                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
18670                NPREC           =SIMP(statut='f',typ='I',defaut= 8, val_min=0),
18671              ),
18672              b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
18673                TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
18674                PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
18675                RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
18676                ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
18677                PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
18678                OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
18679                LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
18680              ),
18681            ),    
18682
18683 )  ;
18684 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18685 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18686 # ======================================================================
18687 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18688 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18689 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18690 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18691 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18692 #
18693 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18694 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18695 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18696 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18697 #
18698 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18699 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18700 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18701 # ======================================================================
18702 # RESPONSABLE COURTOIS M.COURTOIS
18703 from Macro.impr_table_ops import impr_table_ops
18704
18705 IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None,
18706             UIinfo={"groupes":("Impression","Tables",)},
18707                 fr="Impression du contenu d'une table dans un fichier",
18708            regles=(DERIVABLE("TABLE"),),
18709    TABLE          =SIMP(statut='o',typ=table_sdaster),
18710    SENSIBILITE    =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
18711                          fr="Liste des paramètres de sensibilité.",
18712                          ang="List of sensitivity parameters"),
18713    FORMAT         =SIMP(statut='f',typ='TXM',defaut="TABLEAU",
18714                          into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),),
18715    b_pilote       =BLOC(condition = "FORMAT == 'XMGRACE'",
18716                         fr="Mots-clés propres à XMGRACE",
18717       PILOTE         =SIMP(statut='f',typ='TXM',defaut='',
18718                            into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
18719                       fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
18720       UNITE          =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
18721                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
18722    ),
18723    b_unite        =BLOC(condition = "FORMAT != 'XMGRACE'",
18724       UNITE          =SIMP(statut='f',typ='I',defaut=8,
18725                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
18726    ),
18727    FILTRE         =FACT(statut='f',max='**',
18728       NOM_PARA       =SIMP(statut='o',typ='TXM'),
18729       CRIT_COMP      =SIMP(statut='f',typ='TXM',defaut="EQ",
18730                            into=("EQ","LT","GT","NE","LE","GE","VIDE",
18731                                  "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),),
18732       b_vale         =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
18733          regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
18734          VALE           =SIMP(statut='f',typ='R',max='**'),
18735          VALE_I         =SIMP(statut='f',typ='I',max='**'),
18736          VALE_C         =SIMP(statut='f',typ='C',max='**'),
18737          VALE_K         =SIMP(statut='f',typ='TXM',max='**'),
18738       ),
18739       b_crit         =BLOC(condition = "CRIT_COMP in ('EQ','NE')",
18740          CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
18741          PRECISION      =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
18742       ),
18743    ),
18744    TRI            =FACT(statut='f',
18745       NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
18746       ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
18747                            into=("CROISSANT","DECROISSANT") ),
18748    ),
18749    PAGINATION     =SIMP(statut='f',typ='TXM',max='**'),
18750    FORMAT_R       =SIMP(statut='f',typ='TXM',defaut="E12.5"),
18751    FORMAT_C       =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",
18752                               into=("MODULE_PHASE","REEL_IMAG") ),
18753    NOM_PARA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
18754    IMPR_FONCTION  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
18755
18756    # Mise en page du tableau ou du graphique
18757    b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
18758                     fr="Mots-clés propres au format Tableau",
18759       SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
18760                             fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
18761       COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
18762                             fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
18763       COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
18764                             fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
18765       DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
18766                             fr="Caractère de debut de ligne"),
18767       FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
18768                             fr="Caractère de fin de ligne"),
18769     ),
18770
18771    # mise en forme pour les formats qui passent par Graph
18772    b_forme         =BLOC(condition = "FORMAT == 'XMGRACE'",
18773                          fr="Données de mise en forme du graphique",
18774       # pour la courbe
18775       LEGENDE         =SIMP(statut='f',typ='TXM',
18776                             fr="Légende associée à la fonction" ),
18777       STYLE           =SIMP(statut='f',typ='I',val_min=0,
18778                             fr="Style de la ligne représentant la fonction",),
18779       COULEUR         =SIMP(statut='f',typ='I',val_min=0,
18780                             fr="Couleur associée à la fonction",),
18781       MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
18782                             fr="Type du marqueur associé à la fonction",),
18783       FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
18784                             fr="Fréquence d impression du marqueur associé à la fonction", ),
18785       # format du graphique
18786       BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
18787                             fr="Intervalles de variation des abscisses"),
18788       BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
18789                             fr="Intervalles de variation des ordonnées"),
18790       ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
18791                             fr="Type d'échelle pour les abscisses" ),
18792       ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
18793                             fr="Type d'échelle pour les ordonnées" ),
18794       GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
18795                             fr="Pas du quadrillage vertical" ),
18796       GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
18797                             fr="Pas du quadrillage horizontal" ),
18798       LEGENDE_X       =SIMP(statut='f',typ='TXM',
18799                             fr="Légende associée à l'axe des abscisses" ),
18800       LEGENDE_Y       =SIMP(statut='f',typ='TXM',
18801                             fr="Légende associée à l'axe des ordonnées" ),
18802    ),
18803
18804    TITRE          =SIMP(statut='f',typ='TXM',max='**'),
18805    INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
18806 )  
18807 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18808 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18809 # ======================================================================
18810 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18811 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18812 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18813 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18814 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18815 #
18816 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18817 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18818 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18819 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18820 #
18821 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18822 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18823 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18824 # ======================================================================
18825 # RESPONSABLE DURAND C.DURAND
18826 INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
18827             UIinfo={"groupes":("Gestion du travail",)},
18828              fr="Débranchement vers un fichier de commandes secondaires",
18829              sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
18830          UNITE = SIMP(statut='o',typ='I'),
18831          INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18832 );
18833 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18834 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18835 # ======================================================================
18836 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18837 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18838 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18839 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18840 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18841 #
18842 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18843 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18844 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18845 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18846 #
18847 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18848 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18849 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18850 # ======================================================================
18851 # RESPONSABLE DURAND C.DURAND
18852 INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
18853             UIinfo={"groupes":("Modélisation","Gestion du travail",)},
18854          fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ",
18855          sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
18856          NOM_AFNOR       =SIMP(statut='o',typ='TXM' ),  
18857          TYPE_MODELE     =SIMP(statut='o',typ='TXM',into=("REF","PAR") ),
18858          VARIANTE        =SIMP(statut='o',typ='TXM',     
18859                                into=("A","B","C","D","E","F","G","H","I","J",    
18860                                      "K","L","M","N","O","P","Q","R","S","T","U","V",   
18861                                      "W","X","Y","Z",) ),
18862          TYPE_VALE       =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ),
18863          NOM_MATER       =SIMP(statut='o',typ='TXM' ),  
18864          UNITE           =SIMP(statut='f',typ='I',defaut= 32 ),  
18865          EXTRACTION      =FACT(statut='f',max=99,
18866            COMPOR          =SIMP(statut='o',typ='TXM' ),  
18867            TEMP_EVAL       =SIMP(statut='o',typ='R' ),  
18868          ),
18869          UNITE_LONGUEUR  =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ),  
18870          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
18871 )  ;
18872 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18873 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18874 # ======================================================================
18875 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
18876 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18877 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18878 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18879 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18880 #                                                                       
18881 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18882 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18883 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18884 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18885 #                                                                       
18886 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18887 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18888 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18889 # ======================================================================
18890 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
18891 INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
18892                     fr="Récupère différentes informations propres à l'exécution en cours",
18893                     reentrant='n',
18894                     UIinfo={"groupes":("Gestion du travail",)},
18895
18896          regles=(),
18897          LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
18898                               into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
18899          b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
18900             regles=(UN_PARMI('UNITE','FICHIER'),),
18901             UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
18902                                  fr="Unité logique dont on veut obtenir l'état",),
18903             FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
18904                                  fr="Nom du fichier dont on veut obtenir l'état",),
18905          ),
18906          TITRE          =SIMP(statut='f',typ='TXM',max='**'),
18907          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
18908 )  ;
18909 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
18910 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18911 # ======================================================================
18912 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
18913 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18914 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18915 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18916 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18917 #                                                                       
18918 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18919 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18920 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18921 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18922 #                                                                       
18923 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18924 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18925 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18926 # ======================================================================
18927 # RESPONSABLE COURTOIS M.COURTOIS
18928 from Macro.info_fonction_ops import info_fonction_ops
18929 def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
18930    if (RMS         != None): return table_sdaster
18931    if (MAX         != None): return table_sdaster
18932    if (NOCI_SEISME != None): return table_sdaster
18933    if (ECART_TYPE  != None): return table_sdaster
18934    if (NORME       != None): return table_sdaster
18935    raise AsException("type de concept resultat non prevu")
18936
18937 INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod
18938                     ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
18939                      reentrant='n',
18940             UIinfo={"groupes":("Fonctions",)},
18941          regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
18942          RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
18943            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
18944            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
18945            INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
18946            INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
18947            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
18948            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
18949               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
18950            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
18951               PRECISION       =SIMP(statut='o',typ='R'),),
18952          ),
18953          NOCI_SEISME     =FACT(statut='f',
18954            regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
18955            FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
18956            SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
18957            b_option_f      =BLOC(condition="""FONCTION !=None""",
18958              OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
18959                                    into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
18960                                          "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
18961              b_amor_red          =BLOC(condition="""OPTION in ("TOUT", "INTE_SPEC") """,
18962                 AMOR_REDUIT     =SIMP(statut='o',typ='R'),),
18963              b_pesanteur         =BLOC(condition="""OPTION in ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT") """,
18964                 PESANTEUR       =SIMP(statut='o',typ='R'),),
18965            ),
18966            b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
18967              OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
18968              NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
18969              AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
18970            INST_INIT       =SIMP(statut='f',typ='R'),
18971            INST_FIN        =SIMP(statut='f',typ='R'),
18972            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
18973            FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
18974            FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
18975            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
18976            FREQ            =SIMP(statut='f',typ='R',max='**'),
18977            NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
18978            BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
18979            BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
18980            b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
18981                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
18982                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
18983                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
18984                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
18985                       PRECISION       =SIMP(statut='o',typ='R'),),
18986            ),
18987          ),
18988          MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
18989            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
18990            INTERVALLE      =SIMP(statut='f',typ='R',min=2,max='**',
18991                                fr ="définition des bornes des intervalles sous forme de couples (xi_i1,xs_i1,xi_i2,xs_i2)"),
18992          ),
18993          NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
18994             FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
18995          ),     
18996          ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
18997             METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
18998             FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
18999             INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
19000             INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
19001             CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
19002             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
19003                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
19004             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
19005                 PRECISION       =SIMP(statut='o',typ='R'),),
19006          ),     
19007          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
19008 )
19009 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19010 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19011 # ======================================================================
19012 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
19013 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19014 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19015 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19016 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19017 #                                                                       
19018 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19019 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19020 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19021 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19022 #                                                                       
19023 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19024 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19025 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19026 # ======================================================================
19027 # RESPONSABLE SELLENET N.SELLENET
19028 INFO_RESU=PROC(nom="INFO_RESU",op=40,
19029                UIinfo={"groupes":("Impression","Utilitaires",)},
19030                fr="Imprimer tous les champs présents dans une structure de données résultat",
19031                RESULTAT=SIMP(statut='f',typ=resultat_sdaster),
19032                UNITE=SIMP(statut='f',typ='I',defaut=6),
19033 );
19034 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19035 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19036 # ======================================================================
19037 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
19038 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19039 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19040 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19041 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19042 #                                                                       
19043 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19044 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19045 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19046 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19047 #                                                                       
19048 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19049 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19050 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19051 # ======================================================================
19052 # RESPONSABLE GREFFET
19053 INIT_COMPO=PROC(nom="INIT_COMPO",
19054                 op=  117,
19055                 UIinfo={"groupes":("Gestion du travail",)},
19056                 fr="Initialiser adresse component YACS",
19057            COMPO           =SIMP(statut='o',typ='I',),
19058 )  ;
19059 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19060 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19061 # ======================================================================
19062 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19063 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19064 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19065 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19066 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19067 #
19068 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19069 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19070 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19071 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19072 #
19073 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19074 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19075 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19076 # ======================================================================
19077 # RESPONSABLE DESROCHES X.DESROCHES
19078 INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
19079             UIinfo={"groupes":("Post-traitements",)},
19080                   fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
19081
19082          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
19083
19084          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
19085                  AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
19086                  PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
19087                  PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
19088                  PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
19089                  EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
19090                  EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
19091                  EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
19092
19093          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19094          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
19095          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
19096
19097          DEFI_SEGMENT    =FACT(statut='f',max='**',
19098            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
19099                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
19100            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
19101            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
19102            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
19103            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
19104            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
19105            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
19106          ),
19107
19108          DEFI_ARC        =FACT(statut='f',max='**',
19109            regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
19110                    UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
19111                    UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
19112                    PRESENT_PRESENT('RAYON','SECTEUR'),),
19113            CENTRE          =SIMP(statut='f',typ='R',min=2,max=2),  
19114            NOEUD_CENTRE    =SIMP(statut='f',typ=no,),
19115            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,),
19116            RAYON           =SIMP(statut='f',typ='R',val_min=0.E+0),  
19117            SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2,
19118                                  val_min=-180.E+0,val_max=180E+0),  
19119            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
19120            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
19121            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
19122            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
19123            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
19124            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
19125            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
19126            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
19127                                  into=("RELATIF","ABSOLU",) ),
19128          ),
19129
19130          DEFI_CHEMIN     =FACT(statut='f',max='**',
19131            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
19132            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
19133            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
19134          ),
19135
19136          NOEUD_ORIG      =SIMP(statut='f',typ=no,),
19137          GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
19138          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
19139          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19140 )  ;
19141 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19142 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19143 # ======================================================================
19144 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19145 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19146 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19147 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19148 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19149 #
19150 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19151 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19152 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19153 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19154 #
19155 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19156 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19157 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19158 # ======================================================================
19159 # RESPONSABLE DESROCHES X.DESROCHES
19160 INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
19161             UIinfo={"groupes":("Post-traitements",)},
19162                   fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n',
19163          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
19164          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19165          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
19166          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
19167          DEFI_SEGMENT    =FACT(statut='o',max='**',
19168            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
19169                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
19170            ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
19171            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
19172            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
19173            EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
19174            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
19175            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
19176          ),
19177          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
19178          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19179 )  ;
19180 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19181 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19182 # ======================================================================
19183 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19184 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19185 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19186 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19187 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19188 #
19189 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19190 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19191 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19192 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19193 #
19194 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19195 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19196 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19197 # ======================================================================
19198 # RESPONSABLE COURTOIS M.COURTOIS
19199 def lire_champ_prod(TYPE_CHAM=None,**args):
19200 # Remarque : si cette liste évolue, il faut penser à mettre à jour son
19201 #            homologue dans macr_adap_mail
19202   if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster
19203   if TYPE_CHAM[0:2] == "EL"    : return cham_elem
19204   raise AsException("type de concept resultat non prevu")
19205
19206 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
19207                 UIinfo={"groupes":("Lecture","Résultats et champs",)},
19208                 fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.",
19209                 reentrant='n',
19210          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster,),
19211          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),),
19212          UNITE           =SIMP(statut='f',typ='I',defaut= 81,),  
19213          b_format =BLOC(condition = "FORMAT == 'MED'",
19214          regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
19215                   PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),
19216                   EXCLUS('NUME_ORDRE','INST'),
19217                   EXCLUS('NUME_PT','INST'),),
19218             NOM_MED      =SIMP(statut='o',typ='TXM', ),
19219             NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ),
19220             NOM_CMP      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
19221             NOM_CMP_MED  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
19222             PROL_ZERO    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
19223                fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
19224             NUME_PT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',),
19225             NUME_ORDRE   =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',
19226                            fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ),
19227             INST         =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
19228 #
19229             b_precision     =BLOC(condition="(INST != None)",
19230                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
19231                   fr="Critère de précision sur le choix de l'instant associé",
19232                   ang="Accuracy criterium over instant choice" ),
19233                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
19234                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
19235                       fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),
19236                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
19237                       PRECISION       =SIMP(statut='o',typ='R',
19238                       fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),),
19239 #
19240             NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
19241                   ),
19242 #        Remarque : si cette liste évolue, il faut penser à mettre à jour son
19243 #                   homologue dans macr_adap_mail
19244          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
19245          b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'",
19246             MODELE      =SIMP(statut='o',typ=modele_sdaster, ),
19247                   ),
19248          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
19249 )  ;
19250 #& MODIF COMMANDE  DATE 22/03/2011   AUTEUR COURTOIS M.COURTOIS 
19251 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19252 # ======================================================================
19253 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
19254 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19255 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19256 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19257 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19258 #
19259 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19260 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19261 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19262 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19263 #
19264 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19265 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19266 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19267 # ======================================================================
19268 # RESPONSABLE COURTOIS M.COURTOIS
19269
19270 from Macro.lire_fonction_ops import lire_fonction_ops
19271
19272 def lire_fonction_prod(self,TYPE,**args):
19273   if   (TYPE == 'FONCTION')  : return fonction_sdaster
19274   elif (TYPE == 'FONCTION_C'): return fonction_c
19275   elif (TYPE == 'NAPPE'   )  : return nappe_sdaster
19276   raise AsException("type de concept resultat non prevu")
19277
19278 LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod,
19279                    fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et"
19280                      +" crée un concept de type fonction ou nappe",
19281                    reentrant='n',
19282             UIinfo={"groupes":("Lecture","Fonctions",)},
19283          FORMAT          =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE"  ),
19284          TYPE            =SIMP(statut='f',typ='TXM',into=("Fonctions","FONCTION_C","NAPPE"),defaut="FONCTION"  ),
19285          SEPAR           =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ),
19286          INDIC_PARA      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]),
19287          b_fonction      =BLOC(condition = "TYPE=='FONCTION' ",
19288            INDIC_RESU      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ),
19289          b_fonction_c    =BLOC(condition = "TYPE=='FONCTION_C' ",
19290            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ),
19291            b_reel_imag     =BLOC(condition = "FORMAT_C=='REEL_IMAG' ",
19292              INDIC_REEL      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
19293              INDIC_IMAG      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) ,
19294            b_modu_phas     =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ",
19295              INDIC_MODU      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
19296              INDIC_PHAS      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ),
19297          b_nappe         =BLOC(condition = "TYPE=='NAPPE' ",
19298            NOM_PARA_FONC   =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
19299            INDIC_ABSCISSE  =SIMP(statut='o',typ='I',min=2,max=2,),
19300            INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
19301                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"),
19302            PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
19303            PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
19304            DEFI_FONCTION   =FACT(statut='f',max='**',
19305              INDIC_RESU      =SIMP(statut='o',typ='I',min=2,max=2,),),  ),
19306          UNITE           =SIMP(statut='o',typ='I' ),
19307          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
19308          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
19309          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
19310                                fr="Type d'interpolation pour les abscisses et les ordonnées de la " \
19311                                   "fonction ou bien pour le paramètre de la nappe."),
19312          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
19313          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
19314          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
19315          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19316          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19317 )  ;
19318 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19319 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19320 # ======================================================================
19321 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
19322 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19323 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19324 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19325 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19326 #                                                                       
19327 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19328 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19329 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19330 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19331 #                                                                       
19332 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19333 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19334 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19335 # ======================================================================
19336 # RESPONSABLE DEVESA G.DEVESA
19337 LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
19338                     fr="Création d'un vecteur assemblé à partir d'une base modale",
19339                     reentrant='n',
19340             UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)},           
19341          BASE            =SIMP(statut='o',typ=mode_meca),
19342          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
19343          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
19344          NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
19345          NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
19346          NUME_CHAR       =SIMP(statut='f',typ='I' ),
19347          ISSF            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
19348          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),         
19349          NOM_RESU_FORC   =SIMP(statut='f',typ='TXM' ),         
19350 )  ;
19351
19352 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19353 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19354 # ======================================================================
19355 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
19356 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19357 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19358 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19359 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19360 #                                                                       
19361 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19362 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19363 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19364 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19365 #                                                                       
19366 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19367 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19368 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19369 # ======================================================================
19370 # RESPONSABLE DEVESA G.DEVESA
19371 LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
19372                     fr="Création d une matrice assemblée à partir de base modale",
19373                     reentrant='n',
19374             UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)},           
19375          BASE            =SIMP(statut='o',typ=mode_meca ),
19376          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
19377          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
19378          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
19379          ISSF            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
19380          TYPE            =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ),         
19381          SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
19382 )  ;
19383
19384 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19385 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19386 # ======================================================================
19387 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19388 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19389 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19390 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19391 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19392 #
19393 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19394 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19395 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19396 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19397 #
19398 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19399 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19400 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19401 # ======================================================================
19402 # RESPONSABLE ZENTNER I.ZENTNER
19403
19404 from Macro.lire_inte_spec_ops import lire_inte_spec_ops
19405
19406 LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_fonction,
19407                     fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale",
19408                     reentrant='n',
19409             UIinfo={"groupes":("Lecture","Fonctions",)},
19410          UNITE           =SIMP(statut='o',typ='I' ),
19411          FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
19412          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS") ),
19413          NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="FREQ",
19414                                into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
19415                                      "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
19416          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="DSP" ),
19417          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
19418          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
19419          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
19420          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19421          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19422 )  ;
19423 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19424 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19425 # ======================================================================
19426 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19427 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19428 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19429 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19430 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19431 #
19432 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19433 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19434 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19435 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19436 #
19437 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19438 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19439 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19440 # ======================================================================
19441 # RESPONSABLE PELLET J.PELLET
19442 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
19443                    fr="Crée un maillage par lecture d'un fichier au format Aster ou Med",
19444                    ang="Readings of a mesh file",
19445                    reentrant='n',
19446             UIinfo={"groupes":("Lecture","Maillage",)},
19447 #
19448          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
19449 #
19450          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
19451                             fr="Format du fichier : ASTER ou MED.",
19452                             ang="Format of the file : ASTER or MED.",),
19453 #
19454          ABSC_CURV       =FACT(statut='f',min=0,
19455                TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
19456          ),
19457 #
19458          VERI_MAIL       =FACT(statut='d',
19459                VERIF         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
19460                APLAT         =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
19461          ),
19462 #
19463          b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
19464                              fr="Informations complémentaires pour la lecture MED.",
19465                              ang="Further information for MED readings.",
19466 #
19467 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
19468 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
19469             NOM_MED    = SIMP(statut='f',typ='TXM',
19470                               fr="Nom du maillage dans le fichier MED.",
19471                               ang="Name of the mesh into the MED file.",),
19472             INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3) ),
19473 #
19474             RENOMME = FACT(statut='f', max='**',
19475                                  fr="Renommer un nom de groupe MED",
19476                  NOM_MED     = SIMP(statut='o', typ=grma,
19477                                     fr="Nom du groupe dans le fichier MED"),
19478                  NOM         = SIMP(statut='o', typ=grma, validators=LongStr(1,8),
19479                                     fr="Nom du groupe dans le maillage ASTER"),
19480             ),
19481          ),
19482 #
19483          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
19484 #
19485 )  ;
19486 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19487 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19488 # ======================================================================
19489 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19490 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19491 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19492 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19493 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19494 #
19495 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19496 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19497 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19498 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19499 #
19500 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19501 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19502 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19503 # ======================================================================
19504 # RESPONSABLE DEVESA G.DEVESA
19505 def lire_miss_3d_prod(TYPE_RESU,**args):
19506   if TYPE_RESU == "TRANS" : return dyna_trans
19507   if TYPE_RESU == "HARMO" : return dyna_harmo
19508   raise AsException("type de concept resultat non prevu")
19509
19510 LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
19511                   fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D",
19512                   reentrant='n',
19513             UIinfo={"groupes":("Lecture","Outils-métier",)},
19514          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
19515          UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
19516          NOM             =SIMP(statut='f',typ='TXM' ),
19517          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
19518          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19519 )  ;
19520 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19521 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19522 # ======================================================================
19523 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19524 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19525 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19526 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19527 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19528 #
19529 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19530 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19531 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19532 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19533 #
19534 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19535 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19536 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19537 # ======================================================================
19538 # RESPONSABLE POTAPOV S.POTAPOV
19539
19540 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
19541                  fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS",
19542                  reentrant='n',
19543             UIinfo={"groupes":("Lecture","Outils-métier",)},
19544          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
19545          UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
19546          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
19547          MAIL_PLEXUS     =SIMP(statut='o',typ=maillage_sdaster ),
19548          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
19549          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
19550          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19551          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
19552          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
19553          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
19554          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
19555          b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
19556                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
19557                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
19558                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
19559                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
19560                    PRECISION       =SIMP(statut='o',typ='R',),),),
19561          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19562 )  ;
19563 #& MODIF COMMANDE  DATE 08/03/2011   AUTEUR PELLET J.PELLET 
19564 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19565 # ======================================================================
19566 # COPYRIGHT (C) 1991 - 2011  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 LEFEBVRE J.P.LEFEBVRE
19582
19583 def lire_resu_prod(TYPE_RESU,**args):
19584   if TYPE_RESU == "EVOL_CHAR" :  return evol_char
19585   if TYPE_RESU == "EVOL_THER" :  return evol_ther
19586   if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
19587   if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
19588   if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
19589   if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
19590   if TYPE_RESU == "HARM_GENE" :  return harm_gene
19591   if TYPE_RESU == "MODE_MECA" :  return mode_meca
19592   if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c
19593   if TYPE_RESU == "EVOL_VARC" :  return evol_varc
19594   raise AsException("type de concept resultat non prevu")
19595
19596 # pour éviter d'écrire 3 fois cette liste :
19597 def l_nom_cham_pas_elga(): return (
19598      "ACCE",
19599      "ACCE_ABSOLU",
19600      "CRIT_ELNO",
19601      "DERA_ELNO",
19602      "DERA_NOEU",
19603      "DEDE_ELNO",
19604      "DEDE_NOEU",
19605      "DEGE_ELNO",
19606      "DEGE_NOEU",
19607      "DEPL",
19608      "DEPL_ABSOLU",
19609      "DESI_ELNO",
19610      "DESI_NOEU",
19611      "DETE_ELNO",
19612      "DETE_NOEU",
19613      "DURT_ELNO",
19614      "DURT_NOEU",
19615      "ECIN_ELEM",
19616      "EFCA_ELNO",
19617      "EFGE_ELNO",
19618      "EFCA_NOEU",
19619      "EFGE_NOEU",
19620      "ENDO_ELNO",
19621      "ENDO_NOEU",
19622      "ENEL_ELNO",
19623      "ENEL_NOEU",
19624      "EPTQ_ELNO",
19625      "EPGR_ELNO",
19626      "EPME_ELNO",
19627      "EPMG_ELNO",
19628      "EPMG_NOEU",
19629      "EPOT_ELEM",
19630      "EPSA_ELNO",
19631      "EPSA_NOEU",
19632      "EPSG_ELNO",
19633      "EPSG_NOEU",
19634      "EPSI_ELNO",
19635      "EPTU_ELNO",
19636      "EPSI_NOEU",
19637      "EPSP_ELNO",
19638      "EPSP_NOEU",
19639      "EPMQ_ELNO",
19640      "EPEQ_ELNO",
19641      "SIEQ_ELNO",
19642      "EPMQ_NOEU",
19643      "EPEQ_NOEU",
19644      "SIEQ_NOEU",
19645      "ERRE_ELEM_NOZ1",
19646      "ERRE_ELEM_NOZ2",
19647      "ERRE_ELNO_ELGA",
19648      "ERRE_NOEU_ELGA",
19649      "ERTH_ELEM_TEMP",
19650      "ERTH_ELNO_ELEM",
19651      "ETOT_ELEM",
19652      "ETOT_ELNO",
19653      "FLUX_ELNO",
19654      "FLUX_NOEU",
19655      "FORC_NODA",
19656      "FSUR_2D",
19657      "FSUR_3D",
19658      "FVOL_2D",
19659      "FVOL_3D",
19660      "GRAD_NOEU_THETA",
19661      "HYDR_ELNO",
19662      "HYDR_NOEU",
19663      "INTE_ELNO",
19664      "INTE_NOEU",
19665      "IRRA",
19666      "META_ELNO",
19667      "META_NOEU",
19668      "PMPB_ELNO",
19669      "PMPB_NOEU",
19670      "PRES",
19671      "PRME_ELNO",
19672      "PRAC_ELNO",
19673      "PRAC_NOEU",
19674      "REAC_NODA",
19675      "SIEF_ELNO",
19676      "SIEF_ELNO",
19677      "SIEF_NOEU",
19678      "SIEF_NOEU",
19679      "SITQ_ELNO",
19680      "SICA_ELNO",
19681      "SICO_ELNO",
19682      "SIGM_ELNO",
19683      "SITU_ELNO",
19684      "SICA_NOEU",
19685      "SICO_NOEU",
19686      "SIGM_NOEU",
19687      "SIZ1_ELGA",
19688      "SIZ2_ELGA",
19689      "SIPO_ELNO",
19690      "SIPO_NOEU",
19691      "TEMP",
19692      "THETA",
19693      "VALE_CONT",
19694      "SPMX_ELGA",
19695      "VARI_ELNO",
19696      "VACO_ELNO",
19697      "VARI_ELNO",
19698      "VATU_ELNO",
19699      "VARI_NOEU",
19700      "VARI_NOEU",
19701      "VITE",
19702      "VITE_ABSOLU",
19703      "VITE_VENT",
19704                            )
19705
19706 LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
19707             UIinfo={"groupes":("Lecture","Résultats et champs",)},
19708                fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED,"
19709                  +" des champs et les stocker dans une SD résultat",
19710
19711
19712 # 0) mots clés généraux :
19713 #----------------------
19714          TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
19715                                                           "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE",
19716                                                           "EVOL_CHAR","EVOL_VARC") ),
19717
19718          FORMAT          =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ),
19719
19720          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
19721          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19722
19723          regles=(UN_PARMI('MAILLAGE','MODELE'),),
19724          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
19725          MODELE          =SIMP(statut='f',typ=modele_sdaster),
19726          COMP_INCR       =C_COMP_INCR(),
19727          NB_VARI         =SIMP(statut='f',typ='I' ),
19728
19729          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,),
19730
19731          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,),
19732
19733           b_evol_elas  = BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
19734           EXCIT           =FACT(statut='f',max='**',
19735             CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
19736             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19737             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),),
19738            ),
19739
19740           b_evol_ther  = BLOC(condition="TYPE_RESU=='EVOL_THER'",
19741           EXCIT           =FACT(statut='f',max='**',
19742             CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
19743             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
19744            ),
19745
19746           b_evol_noli  = BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
19747           EXCIT           =FACT(statut='f',max='**',
19748            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
19749            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19750            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
19751                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
19752            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19753            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19754            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19755            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
19756            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
19757            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
19758            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
19759          ),
19760
19761
19762 # 1) blocs selon le format choisi :
19763 #---------------------------------
19764
19765 # 1-1 ideas dataset-58 :
19766 # ----------------------
19767          b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'",
19768            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
19769          ),
19770          b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\
19771                                         (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
19772            NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU","SIEF_NOEU",),max='**' ),
19773            REDEFI_ORIENT=FACT(statut='f',max='**',
19774                               regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
19775                               CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
19776                               DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
19777                               NOEUD    =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),),
19778          ),
19779
19780 # 1-2 ideas  :
19781 # ---------
19782          b_ideas         =BLOC(condition="FORMAT=='IDEAS'",
19783            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
19784 #           TEST            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
19785            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
19786            PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
19787              fr="Affecte des valeurs nulles la ou le champ n'est pas defini"),
19788            FORMAT_IDEAS    =FACT(statut='f',max='**',
19789              regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
19790              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
19791              NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
19792              RECORD_3        =SIMP(statut='f',typ='I',max=10),
19793              RECORD_6        =SIMP(statut='f',typ='I',max=10),
19794              RECORD_9        =SIMP(statut='f',typ='I',max=10),
19795              POSI_ORDRE      =SIMP(statut='o',typ='I',min=2,max=2),
19796              POSI_NUME_MODE  =SIMP(statut='f',typ='I',min=2,max=2),
19797              POSI_MASS_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
19798              POSI_AMOR_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
19799              POSI_INST       =SIMP(statut='f',typ='I',min=2,max=2),
19800              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
19801              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
19802          ),
19803
19804 # 1-3 ensight :
19805 # -------------
19806          b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
19807            NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
19808            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
19809          ),
19810
19811 # 1-4 med :
19812 # ---------
19813          b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
19814            UNITE           =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
19815            FORMAT_MED      =FACT(statut='o',max='**',
19816              regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),UN_PARMI('NOM_CHAM_MED','NOM_RESU'),),
19817              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),),
19818              NOM_CHAM_MED    =SIMP(statut='f',typ='TXM',               fr="Nom du champ dans le fichier MED.",  ),
19819              NOM_RESU        =SIMP(statut='f',typ='TXM',               fr="Prefixe du nom de champ dans le fichier MED.",  ),
19820              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans ASTER.", ),
19821              NOM_CMP_MED     =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans MED.", ),
19822            ),
19823            PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),
19824             fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
19825          ),
19826
19827 # 2) blocs selon le type du résultat :
19828 #---------------------------------
19829          b_mode_meca     =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')",
19830            # Ces mots cles sont stockes dans l'objet .REFD des mode_meca
19831            # Ces mots cles sont aussi utilises  pour imposer la numerotation des cham_no de DEPL_R
19832            MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,max=1),
19833            MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,max=1),
19834            NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),max=1,),
19835          ),
19836
19837
19838 # 3) autres blocs :
19839 #---------------------------------
19840          b_extrac        =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat",
19841            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
19842            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19843            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
19844            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
19845            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
19846            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
19847            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
19848            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
19849
19850            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
19851              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
19852              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
19853                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
19854              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
19855                  PRECISION       =SIMP(statut='o',typ='R',),),
19856            ),
19857          ),
19858 )  ;
19859 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19860 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19861 # ======================================================================
19862 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
19863 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19864 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19865 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19866 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19867 #                                                                       
19868 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19869 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19870 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19871 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19872 #                                                                       
19873 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19874 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19875 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19876 # ======================================================================
19877 # RESPONSABLE COURTOIS M.COURTOIS
19878
19879 from Macro.lire_table_ops import lire_table_ops
19880
19881 LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster,
19882                  fr="Lecture d'un fichier contenant une table",
19883             UIinfo={"groupes":("Lecture","Tables",)},
19884          UNITE           =SIMP(statut='o',typ='I' ),
19885          FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
19886          NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
19887          SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' '),
19888          PARA            =SIMP(statut='f',typ='TXM',max='**'),
19889          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19890          )  ;
19891
19892 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
19893 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19894 # ======================================================================
19895 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
19896 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19897 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19898 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19899 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19900 #                                                                       
19901 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19902 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19903 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19904 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19905 #                                                                       
19906 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19907 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19908 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19909 # ======================================================================
19910 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
19911
19912 MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
19913                fr="Critere orthogonalite de modes propres",
19914                reentrant='n',
19915                UIinfo={"groupes":("Résolution","Dynamique",)},
19916                regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),),
19917          BASE_1     =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ),
19918          BASE_2     =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ),
19919          MATR_ASSE  =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
19920          IERI       =SIMP(statut='f',typ='TXM',into=("OUI",),),
19921          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
19922          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19923 )  ;
19924 #& MODIF COMMANDE  DATE 11/05/2011   AUTEUR SELLENET N.SELLENET 
19925 # -*- coding: iso-8859-1 -*-
19926 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19927 # ======================================================================
19928 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
19929 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19930 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19931 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
19932 # (AT YOUR OPTION) ANY LATER VERSION.
19933 #
19934 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
19935 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
19936 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
19937 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
19938 #
19939 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
19940 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
19941 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19942 # ======================================================================
19943 # RESPONSABLE GNICOLAS G.NICOLAS
19944
19945
19946 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
19947
19948 def macr_adap_mail_prod(self, MAJ_CHAM, ADAPTATION, **args):
19949 #
19950 # 0. Typage des structures produites
19951 #
19952   maillage_np1=args['MAILLAGE_NP1']
19953   self.type_sdprod(maillage_np1,maillage_sdaster)
19954 #
19955   if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) :
19956     maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE']
19957     self.type_sdprod(maillage_np1_annexe,maillage_sdaster)
19958 #
19959   if MAJ_CHAM == None:return None
19960 # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
19961   for ch in MAJ_CHAM:
19962     t=ch['TYPE_CHAM']
19963     if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster)
19964     if t[0:2] == "EL":   self.type_sdprod(ch['CHAM_MAJ'],cham_elem)
19965   return None
19966
19967
19968 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod,
19969                      fr="Adapter un maillage avec le logiciel HOMARD.",
19970                      ang="Mesh adaptation with the HOMARD software.",
19971                      docu="U7.03.01",UIinfo={"groupes":("Maillage",)},
19972 #
19973 # 1. Le niveau d'information
19974 #
19975   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
19976 #
19977 # 2. Version de HOMARD
19978 #
19979   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_1",
19980                         into=("V10_1", "V10_N", "V10_N_PERSO"),
19981                         fr="Version de HOMARD",
19982                         ang="HOMARD release"),
19983 #
19984 # 3. Langue des messages produits par HOMARD
19985 #
19986   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
19987                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
19988                 fr="Langue des messages produits par HOMARD.",
19989                 ang="Language for the HOMARD messages." ),
19990 #
19991 # 4. Les maillages
19992 # 4.1. Quel que soit le type de traitement, il faut donner  :
19993 #      A. Le concept du maillage initial (entree)
19994 #      B. Le concept du maillage final (sortie)
19995 #
19996   MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
19997                       fr="Maillage avant adaptation",
19998                       ang="Mesh before adaptation" ),
19999 #
20000   MAILLAGE_NP1 = SIMP(statut='o',typ=CO,
20001                       fr="Maillage après adaptation",
20002                       ang="Mesh after adaptation" ),
20003 #
20004 # 4.2. Eventuellement, on peut produire un maillage annexe
20005 #      Actuellement, c'est le maillage n+1, mais de degré différent.
20006 #
20007   MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
20008                              fr="Maillage annexe après adaptation",
20009                              ang="Additional mesh after adaptation" ),
20010 #
20011 # 5. Le pilotage de l'adaptation, avec les variantes suivantes :
20012 #  . Raffinement et deraffinement, selon un champ
20013 #  . Raffinement seul, selon un champ
20014 #  . Deraffinement seul, selon un champ
20015 #  . Raffinement seul, selon des zones geometriques
20016 #  . Raffinement uniforme : toutes les mailles sont divisées
20017 #  . Deraffinement uniforme : toutes les mailles sont regroupées
20018 #  . Modification : le maillage subit des transformations specifiques
20019 #  . Rien : le maillage est le meme a la sortie et a l'entree
20020 #
20021   ADAPTATION = SIMP(statut='o',typ='TXM',
20022                     into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \
20023                           "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME", \
20024                           "MODIFICATION","RIEN"),
20025                     fr="Pilotage de l'adaptation : selon un champ ou uniforme.",
20026                     ang="Adaptation control : either among an field or uniform" ),
20027 #
20028 # 6. Pour de l'adaptation libre, il faut un champ ou une zone
20029 #
20030   b_champ = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20031                                 (ADAPTATION == 'RAFFINEMENT') or \
20032                                 (ADAPTATION == 'DERAFFINEMENT') " ,
20033                   fr="Pour une adaptation libre, choix du champ ou d'une zone à raffiner",
20034                   ang="For a free adaptation, selection of the field or of a zone",
20035 #
20036     regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
20037 #
20038 # 6.1. Reperage de la zone a raffiner a l'aide d'un champ
20039 #
20040 # 6.1.1. Sous forme de champ de grandeur
20041 #
20042     CHAM_GD    = SIMP(statut='f',typ=cham_gd_sdaster,
20043                       fr="Champ de grandeur Code_Aster pilotant l'adaptation",
20044                       ang="Code_Aster 'champ de grandeur' governing the adapatation" ),
20045 #
20046 # 6.1.2. Sous forme de concept resultat_sdaster
20047 #
20048     RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ,
20049                       fr="Concept résultat Code_Aster contenant le champ",
20050                       ang="The Code_Aster result with the field" ),
20051 #
20052     b_champ_adaptation = BLOC(condition="(RESULTAT_N != None)",
20053       NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),
20054                         fr="Champ dans le résultat",
20055                         ang="The field in the result structure" ),
20056     ),
20057 #
20058 # 6.1.3. Est-ce un champ derive
20059 #
20060     b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
20061                         fr="Est-ce un champ dérivé",
20062                         ang="Is the field a derivative field",
20063 #
20064       SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
20065                          fr="Paramètre de sensibilité.",
20066                          ang="Sensitivity parameter")
20067 #
20068     ),
20069 #
20070 # 6.1.4. La ou les composantes retenues
20071 #
20072     b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
20073                         fr="Choix de la composante ou des composantes pour le champ",
20074                         ang="Selection of the component(s) for the field",
20075 #
20076       NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
20077                             fr="Liste des composante(s) retenue(s) pour le champ.",
20078                             ang="List of the selected component(s) for the field." ),
20079 #
20080     ),
20081 #
20082 # 6.1.5. Le paramètre temporel pour le champ
20083 #
20084     b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)",
20085                                 fr="Choix éventuel du paramètre temporel pour le champ",
20086                                 ang="Time selection for the field (option)",
20087 #
20088       regles=(EXCLUS('NUME_ORDRE','INST'),),
20089 #
20090 # 6.1.5.1. Soit le numero d'ordre
20091 #
20092       NUME_ORDRE = SIMP(statut='f',typ='I',
20093                         fr="Numéro d ordre",
20094                         ang="Rank" ),
20095 #
20096 # 6.1.5.2. Soit l'instant
20097 # 6.1.5.2.1. Sa valeur
20098 #
20099       INST       = SIMP(statut='f',typ='R',
20100                         fr="Instant associé",
20101                         ang="Instant" ),
20102 #
20103 # 6.1.5.2.2. La précision du choix de l'instant
20104 #
20105       b_precision = BLOC(condition="(INST != None)",
20106                          fr="Choix de la précision du choix de l'instant",
20107                          ang="Precision for the choice of the instant",
20108         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
20109                          fr="Critère de précision sur le choix de l'instant associé",
20110                          ang="Accuracy criterium over the choice of the instant"),
20111         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
20112             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
20113                              fr="Précision relative sur le choix de l'instant associé",
20114                              ang="Relative accuracy over the choice of the instant"),),
20115         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
20116             PRECISION       =SIMP(statut='o',typ='R',
20117                              fr="Précision absolue sur le choix de l'instant associé",
20118                              ang="Absolute accuracy over the choice of the instant"),),
20119       ),
20120 #
20121     ),
20122 #
20123 # 6.1.6. Usage des composantes : maximum, maximum de la valeur absolue, ou de la norme L2, ou de la norme infinie
20124 #
20125     b_usage_cmp = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
20126                        fr="Type d'usage de(s) composante(s)",
20127                        ang="Type of the use for the component(s)",
20128 #
20129       USAGE_CMP = SIMP(statut='f',typ='TXM',defaut="NORME_L2",
20130                        into=("ABSOLU", "NORME_L2", "NORME_INFINIE", "RELATIF"),
20131                        fr="Valeur absolue de la composante, ou norme du champ, ou valeur relative de la composante",
20132                        ang="Absolute value of the component, or norm of the field, or relative value of the component" ),
20133 #
20134     ),
20135 #
20136 # 6.1.7. Usage du champ : la valeur par maille ou le max du saut entre mailles
20137 #
20138     b_usage_champ = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
20139                          fr="Usage du champ : par maille ou saut entre mailles voisines",
20140                          ang="Use type for the field : direct or jump",
20141 #
20142       USAGE_CHAMP = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE","SAUT"),
20143                          fr="Usage du champ : la valeur par maille ou le saut entre mailles voisines",
20144                          ang="Use of the field : value over every mesh or jump between the neighbours" ),
20145 #
20146     ),
20147 #
20148   ) ,
20149 #
20150 # 7. Les criteres pour de l'adaptation libre avec un champ :
20151 #        absolu, relatif, en proportion d'entite
20152 # 7.1. Pour le raffinement :
20153 #
20154   b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20155                                                  (ADAPTATION == 'RAFFINEMENT') " ,
20156                                 fr="Critère de raffinement.",
20157                                 ang="Refinement threshold.",
20158 #
20159     regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
20160 #
20161     CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
20162                          fr="Critère absolu",
20163                          ang="Absolute threshold" ),
20164     CRIT_RAFF_REL = SIMP(statut='f',typ='R',
20165                          fr="Critère relatif : fraction réelle entre 0. et 1.",
20166                          ang="Relative threshold : ratio between 0. and 1." ),
20167     CRIT_RAFF_PE  = SIMP(statut='f',typ='R',
20168                          fr="Pourcentage de mailles : fraction réelle entre 0. et 1.",
20169                          ang="Percentage of meshes : ratio between 0. and 1." ),
20170   ) ,
20171 #
20172 # 7.2. Pour le deraffinement :
20173 #
20174   b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20175                                                    (ADAPTATION == 'DERAFFINEMENT') " ,
20176                                      fr="Critère de déraffinement.",
20177                                      ang="Unrefinement threshold.",
20178 #
20179     regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
20180 #
20181     CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
20182                          fr="Critère absolu",
20183                          ang="Absolute threshold" ),
20184     CRIT_DERA_REL = SIMP(statut='f',typ='R',
20185                          fr="Critère relatif : fraction réelle entre 0. et 1.",
20186                          ang="Relative threshold : ratio between 0. and 1." ),
20187     CRIT_DERA_PE  = SIMP(statut='f',typ='R',
20188                          fr="Pourcentage de mailles : fraction réelle entre 0. et 1.",
20189                          ang="Percentage of meshes : ratio between 0. and 1." ),
20190   ) ,
20191 #
20192 # 8. Pour de l'adaptation par zone, définitions des zones
20193 #
20194   b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
20195                  fr="Pour une adaptation selon une zone à raffiner",
20196                  ang="For adaptation among a zone",
20197 #
20198     ZONE = FACT(statut='o',min=1,max='**',
20199                 fr="Définition de zones à raffiner.",
20200                 ang="Refined zone definition.",
20201 #
20202 # 8.1. Type de la zone
20203 #
20204       TYPE = SIMP(statut='o',typ='TXM',into=("RECTANGLE", "BOITE", "DISQUE", "SPHERE", "CYLINDRE", "DISQUE_PERCE", "TUYAU"),
20205                   fr="Type de la zone",
20206                   ang="Type of the zone" ),
20207 #
20208 # Ne sachant pas exploiter les blocs, je mets des regles
20209 #
20210       regles=(AU_MOINS_UN('X_MINI','X_CENTRE','HAUTEUR'),
20211               EXCLUS('X_MINI','X_CENTRE','HAUTEUR',),
20212               EXCLUS('Z_MINI','X_CENTRE','HAUTEUR',),
20213               EXCLUS('X_MINI','Z_CENTRE','HAUTEUR',),
20214               EXCLUS('Z_MINI','Z_CENTRE','HAUTEUR',),
20215               EXCLUS('X_MINI','RAYON',),
20216               EXCLUS('Z_MINI','RAYON',),
20217               EXCLUS('X_MINI','X_CENTRE','RAYON_INT',),
20218               EXCLUS('Z_MINI','X_CENTRE','RAYON_INT',),
20219               EXCLUS('X_MINI','X_CENTRE','RAYON_EXT',),
20220               EXCLUS('Z_MINI','X_CENTRE','RAYON_EXT',),
20221               EXCLUS('RAYON','RAYON_INT',),),
20222 #
20223 # 8.2. Une boite rectangulaire ou parallelepipedique
20224 # 8.2.1. Incontournables
20225 #
20226 ##gn      b_z_boiteXY = BLOC( condition = " (TYPE == 'RECTANGLE') or (TYPE == 'BOITE') " ,
20227 ##gn                          fr="X et Y mini/maxi pour un rectangle ou un parallelepipede.",
20228 ##gn                          ang="X and Y min/max for a rectangle or a parallelepipedic box",
20229       X_MINI = SIMP(statut='f',typ='R',
20230                     fr="Abscisse minimum de la boite",
20231                     ang="Minimum X for the box"),
20232       X_MAXI = SIMP(statut='f',typ='R',
20233                     fr="Abscisse maximum de la boite",
20234                     ang="Maximum X for the box"),
20235       Y_MINI = SIMP(statut='f',typ='R',
20236                     fr="Ordonnée minimum de la boite",
20237                     ang="Minimum Y for the box"),
20238       Y_MAXI = SIMP(statut='f',typ='R',
20239                       fr="Abscisse maximum de la boite",
20240                       ang="Maximum Y for the box"),
20241 ##gn      ) ,
20242 #
20243 # 8.2.2. Complement pour une boite parallelepipedique
20244 #
20245 ##gn      b_z_boiteZ = BLOC( condition = " (TYPE == 'BOITE') " ,
20246 ##gn                         fr="Z mini/maxi pour un parallelepipede.",
20247 ##gn                         ang="Z min/max for a parallelepipedic box",
20248       Z_MINI = SIMP(statut='f',typ='R',
20249                     fr="Cote minimum de la boite",
20250                     ang="Minimum Z for the box"),
20251       Z_MAXI = SIMP(statut='f',typ='R',
20252                     fr="Cote maximum de la boite",
20253                     ang="Maximum Z for the box"),
20254 ##gn      ) ,
20255 #
20256 # 8.3. Rayon pour un disque, une sphere ou un cylindre
20257 #
20258 ##gn      b_z_rayon = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " ,
20259 ##gn                        fr="Le rayon d'un disque, d'une sphere ou d'un cylindre.",
20260 ##gn                        ang="The radius of a disk or of a sphere or of a cylinder.",
20261       RAYON = SIMP(statut='f',typ='R',
20262                    fr="Rayon",
20263                    ang="Radius"),
20264 ##gn      ) ,
20265 #
20266 # 8.4. Pour un disque plein ou perce, une sphere
20267 # 8.4.1. Incontournables
20268 #
20269 ##gn      b_z_di_sp_XY = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'DISQUE_PERCE') " ,
20270 ##gn                           fr="X et Y du centre d'un disque plein ou perce, d'une sphere.",
20271 ##gn                           ang="X and Y of the centre of a disk or of a sphere.",
20272       X_CENTRE = SIMP(statut='f',typ='R',
20273                       fr="Abscisse du centre du disque ou de la sphère",
20274                       ang="X for the center of the disk or of the sphere"),
20275       Y_CENTRE = SIMP(statut='f',typ='R',
20276                       fr="Ordonnée du centre du disque ou de la sphère",
20277                       ang="Y for the center of the disk or of the sphere"),
20278 ##gn      ) ,
20279 #
20280 # 8.4.2. Complement pour une sphere
20281 #
20282 ##gn      b_z_sp_Z = BLOC( condition = " (TYPE == 'SPHERE') " ,
20283 ##gn                       fr="Cote du centre de la sphere.",
20284 ##gn                       ang="Z for the center of the sphere.",
20285        Z_CENTRE = SIMP(statut='f',typ='R',
20286                        fr="Cote du centre de la sphère",
20287                        ang="Z for the center of the sphere"),
20288 ##gn      ) ,
20289 #
20290 # 8.5. Rayons interieur et exterieur pour un disque perce ou un tuyau
20291 #
20292 ##gn      b_z_rayon_int_ext = BLOC( condition = " (TYPE == 'DISQUE_PERCE') or (TYPE == 'TUYAU') " ,
20293 ##gn                                fr="Le rayon d'un disque perce ou d'un tuyau.",
20294 ##gn                                ang="The radius of a holed disk or of a pipe.",
20295       RAYON_INT = SIMP(statut='f',typ='R',
20296                        fr="Rayon intérieur",
20297                        ang="Internal radius"),
20298       RAYON_EXT = SIMP(statut='f',typ='R',
20299                        fr="Rayon extérieur",
20300                        ang="External radius"),
20301 ##gn      ) ,
20302 #
20303 # 8.6. Un cylindre ou un tuyau
20304 #
20305 ##gn      b_z_cylindre_tuyau = BLOC( condition = " (TYPE == 'CYLINDRE') or (TYPE == 'TUYAU') " ,
20306 ##gn                                 fr="Pour un cylindre ou un tuyau.",
20307 ##gn                                 ang="For a cylinder or a pipe.",
20308       X_AXE = SIMP(statut='f',typ='R',
20309                    fr="Abscisse du vecteur directeur de l'axe",
20310                    ang="X for the axial vector"),
20311       Y_AXE = SIMP(statut='f',typ='R',
20312                    fr="Ordonnée du vecteur directeur de l'axe",
20313                    ang="Y for the axial vector"),
20314       Z_AXE = SIMP(statut='f',typ='R',
20315                    fr="Cote du vecteur directeur de l'axe",
20316                    ang="Z for the axial vector"),
20317       X_BASE = SIMP(statut='f',typ='R',
20318                     fr="Abscisse d'un point de la base, sur l'axe",
20319                     ang="X for the basis, on the axis"),
20320       Y_BASE = SIMP(statut='f',typ='R',
20321                     fr="Ordonnée d'un point de la base, sur l'axe",
20322                     ang="Y for the basis, on the axis"),
20323       Z_BASE = SIMP(statut='f',typ='R',
20324                     fr="Cote d'un point de la base, sur l'axe",
20325                     ang="Z for the basis, on the axis"),
20326       HAUTEUR = SIMP(statut='f',typ='R',
20327                      fr="Hauteur",
20328                      ang="Height"),
20329 ##gn     ) ,
20330 #
20331     ) ,
20332 #
20333   ) ,
20334 #
20335 # 9. Les niveaux extremes pour le maillage adapte
20336 # 9.1. Pour le raffinement :
20337 #
20338   b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20339                                          (ADAPTATION == 'RAFFINEMENT') or \
20340                                          (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
20341                                          (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
20342                            fr="Profondeur maximale de raffinement",
20343                            ang="Maximum depth for the refinement",
20344 #
20345     NIVE_MAX = SIMP(statut='f',typ='I',
20346                     fr="Niveau maximum de profondeur de raffinement",
20347                     ang="Maximum level for the refinement"),
20348 #
20349     DIAM_MIN = SIMP(statut='f',typ='R',
20350                     fr="Diamètre minimal de maille",
20351                     ang="Minimal diameter for the mesh" ),
20352 #
20353   ) ,
20354 #
20355 # 9.2. Pour le deraffinement :
20356 #
20357   b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20358                                          (ADAPTATION == 'DERAFFINEMENT') or \
20359                                          (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
20360                            fr="Niveau minimum de profondeur de déraffinement",
20361                            ang="Minimum level for the unrefinement",
20362     NIVE_MIN = SIMP(statut='f',typ='I',
20363                     fr="Niveau minimum de profondeur de déraffinement",
20364                     ang="Minimum level for the unrefinement"),
20365   ) ,
20366 #
20367 # 10. Filtrage de l'adaptation par des groupes
20368 #
20369   b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
20370                                                    (ADAPTATION == 'RAFFINEMENT') or \
20371                                                    (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
20372                                                    (ADAPTATION == 'RAFFINEMENT_ZONE') or \
20373                                                    (ADAPTATION == 'DERAFFINEMENT') or \
20374                                                    (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
20375                                 fr="Filtrage de l'adaptation par des groupes.",
20376                                 ang="Filtering of adaptation by the groups.",
20377 #
20378     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
20379                     fr="Liste des groupes de mailles pour le filtrage de l'adaptation.",
20380                     ang="List of the groups of meshes for filtering of the adaptation." ),
20381 #
20382     GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**',
20383                     fr="Liste des groupes de noeuds pour le filtrage de l'adaptation.",
20384                     ang="List of the groups of nodes for filtering of the adaptation." ),
20385   ) ,
20386 #
20387 # 11. Suivi d'une frontière
20388 #
20389 # 11.1. Definition d'une frontière par un maillage (valable seulement pour des frontières 1D)
20390 #
20391   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
20392                            fr="Maillage de la frontière discrète à suivre",
20393                            ang="Discrete boundary mesh" ),
20394 #
20395   b_FRONTIERE = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
20396                       fr="Information complémentaire sur la frontière discrète",
20397                       ang="Further information about discrete boundary",
20398 #
20399     GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
20400                           fr="Liste des groupes de mailles définissant la frontière discrète",
20401                           ang="Mesh groups which define the discrete boundary" ),
20402 #
20403   ) ,
20404 #
20405 # 11.2. Definition analytique d'une frontière
20406 #
20407   FRONTIERE_ANALYTIQUE = FACT(statut='f',max='**',
20408                               fr="Definition analytique de frontières a suivre.",
20409                               ang="Analytical definition of a boundary.",
20410 #
20411 # 11.2.1. Nom de la frontière
20412 #
20413     NOM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
20414                fr="Nom de la frontière analytique",
20415                ang="Name of the analytic boundary" ),
20416 #
20417 # 11.2.2. Type de la frontière
20418 #
20419     TYPE = SIMP(statut='o',typ='TXM',into=("SPHERE", "CYLINDRE"),
20420                 fr="Type de la frontière analytique",
20421                 ang="Type of the analytic boundary" ),
20422 #
20423 # 11.2.3. Pour une sphere ou un cylindre : rayon et centre
20424 #
20425     b_fr_rayon = BLOC( condition = " (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " ,
20426                        fr="Le rayon et le centre d'une sphère ou d'un cylindre.",
20427                        ang="The radius and the centre of a sphere or of a cylinder.",
20428       RAYON = SIMP(statut='o',typ='R',
20429                    fr="Rayon",
20430                    ang="Radius"),
20431       X_CENTRE = SIMP(statut='o',typ='R',
20432                       fr="Abscisse du centre",
20433                       ang="X for the center"),
20434       Y_CENTRE = SIMP(statut='o',typ='R',
20435                       fr="Ordonneée du centre",
20436                       ang="Y for the center"),
20437       Z_CENTRE = SIMP(statut='o',typ='R',
20438                       fr="Cote du centre",
20439                       ang="Z for the center"),
20440     ) ,
20441 #
20442 # 11.2.4. Complement pour un cylindre
20443 #
20444     b_fr_cylindre = BLOC( condition = " (TYPE == 'CYLINDRE') " ,
20445                           fr="Pour un cylindre.",
20446                           ang="For a cylinder.",
20447       X_AXE = SIMP(statut='o',typ='R',
20448                    fr="Abscisse du vecteur directeur de l'axe",
20449                    ang="X for the axial vector"),
20450       Y_AXE = SIMP(statut='o',typ='R',
20451                    fr="Ordonnée du vecteur directeur de l'axe",
20452                    ang="Y for the axial vector"),
20453       Z_AXE = SIMP(statut='o',typ='R',
20454                    fr="Cote du vecteur directeur de l'axe",
20455                    ang="Z for the axial vector"),
20456     ) ,
20457 #
20458 # 11.2.5. Groupe(s) lie(s) a la frontière
20459 #
20460     GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**',
20461                     fr="Liste des groupes de mailles placées sur la frontière",
20462                     ang="Groups of meshes which are located on the boundary" ),
20463 #
20464   ) ,
20465 #
20466 # 12. mise à jour de champs sur le nouveau maillage
20467 #
20468   MAJ_CHAM = FACT(statut='f',max='**',
20469                   fr="Mise à jour de champs sur le nouveau maillage.",
20470                   ang="Updating of the fields over the new mesh.",
20471 #
20472 # 12.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
20473 #
20474     CHAM_MAJ = SIMP(statut='o',typ=CO,
20475                     fr="Nom du champ de grandeur qui contiendra le champ mis à jour",
20476                     ang="Name of the field for the updated field"),
20477 #
20478 # 12.2. Le type du champ qui contiendra le resultat de la mise a jour
20479 #
20480     TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO( ('NOEU', 'ELNO', 'ELEM') ),
20481                      fr="Type du champ qui contiendra le champ mis à jour",
20482                      ang="Type of the field for the updated field" ),
20483 #
20484 # 12.3. Le champ a interpoler
20485 #
20486     regles=(UN_PARMI('CHAM_GD','RESULTAT')),
20487 #
20488 # 12.3.1. Sous forme de champ de grandeur
20489 #
20490     CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster,
20491                    fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour",
20492                    ang="Champ de grandeur with the field to be updated" ),
20493 #
20494 # 12.3.2. Sous forme de champ dans un resultat
20495 #
20496     RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
20497                     fr="Résultat contenant le champ à mettre à jour",
20498                     ang="Result with the field to be updated" ),
20499 #
20500     b_nom_du_champ = BLOC(condition="(RESULTAT != None)",
20501                           fr="Choix éventuel du nom du champ à interpoler",
20502                           ang="Selection for the name of the field (option)",
20503 #
20504       NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),
20505                       fr="Nom du champ à mettre à jour",
20506                       ang="Name of the field to be updated" ),
20507 #
20508     ),
20509 #
20510 # 12.4. Les composantes
20511 #
20512     NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
20513                    fr="Liste des composante(s) retenue(s) pour le champ.",
20514                    ang="List of the selected component(s) for the field." ),
20515 #
20516 # 12.5. Le paramètre temporel pour le champ a interpoler
20517 #
20518     b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
20519                                 fr="Choix éventuel du paramètre temporel pour le champ à interpoler",
20520                                 ang="Time selection for the field (option)",
20521 #
20522       regles=(EXCLUS('NUME_ORDRE','INST'),),
20523 #
20524 # 12.5.1. Soit le numero d'ordre
20525 #
20526       NUME_ORDRE = SIMP(statut='f',typ='I',
20527                         fr="Numéro d ordre du champ à mettre à jour",
20528                         ang="Rank of the field to be updated" ),
20529 #
20530 # 12.5.2. Soit l'instant
20531 # 12.5.2.1. Sa valeur
20532 #
20533       INST = SIMP(statut='f',typ='R',
20534                   fr="Instant associé",
20535                   ang="Instant" ),
20536 #
20537 # 12.5.2.2. La précision du choix de l'instant
20538 #
20539       b_precision = BLOC(condition="(INST != None)",
20540                          fr="Choix de la précision du choix de l'instant",
20541                          ang="Selection for the choice of the instant",
20542 #
20543         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
20544                          fr="Critère de précision sur le choix de l'instant associé",
20545                          ang="Accuracy criterium over the choice of the instant"),
20546         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
20547             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
20548                              fr="Précision relative sur le choix de l'instant associé",
20549                              ang="Relative accuracy over the choice of the instant"),),
20550         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
20551             PRECISION       =SIMP(statut='o',typ='R',
20552                              fr="Précision absolue sur le choix de l'instant associé",
20553                              ang="Absolute accuracy over the choice of the instant"),),
20554 #
20555       ),
20556 #
20557     ),
20558 #
20559 # 12.6. Type d'interpolation
20560 #
20561     TYPE_MAJ = SIMP(statut='f',typ='TXM',defaut="AUTO",
20562                     into=("AUTO", "ISOP2"),
20563                     fr="Type de mise à jour : automatique ou iso-P2",
20564                     ang="Type of the updating" ),
20565 #
20566 # 12.7. Est-ce un champ dérivé
20567 #
20568     SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
20569                        fr="Paramètre de sensibilité.",
20570                        ang="Sensitivity parameter"),
20571   ),
20572 #
20573 # 13. Les Modifications
20574 #
20575   b_modifications = BLOC( condition = " (ADAPTATION == 'MODIFICATION') " ,
20576                           fr="Modification de maillage.",
20577                           ang="Modification of the mesh.",
20578 #
20579       #regles=(AU_MOINS_UN('DEGRE','JOINT'),),
20580 #
20581 # 13.1. Changement de degre
20582 #
20583       DEGRE         = SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON"),
20584                           fr="Changement de degré du maillage",
20585                           ang="Modification of the degree of the mesh" ),
20586 #
20587 # 13.2. Création des joints
20588 #
20589       #JOINT         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20590                           #fr="Creations des joints",
20591                           #ang="Creation of the junctions" ),
20592 #
20593   ) ,
20594 #
20595 # 14. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
20596 # 14.1. Nombre de noeuds et mailles
20597 #
20598   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
20599                         fr="Nombre de noeuds et de mailles du maillage",
20600                         ang="Number of nodes and meshes in the mesh" ),
20601 #
20602 # 14.2. Determination de la qualité des mailles du maillage
20603 #
20604   QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20605                         fr="Qualité du maillage",
20606                         ang="Quality of the mesh" ),
20607 #
20608 # 14.3. Connexite du maillage
20609 #
20610   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20611                         fr="Connexité du maillage.",
20612                         ang="Connexity of the mesh." ),
20613 #
20614 # 14.4. Taille des sous-domaines du maillage
20615 #
20616   TAILLE         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20617                         fr="Tailles des sous-domaines du maillage.",
20618                         ang="Sizes of mesh sub-domains." ),
20619 #
20620 # 14.5. Controle de la non-interpenetration des mailles
20621 #
20622   INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20623                         fr="Controle de la non interpénétration des mailles.",
20624                         ang="Overlapping checking." ),
20625 #
20626 # 14.6. Propriétés du maillage de calcul
20627 #
20628   PROP_CALCUL    = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
20629                         fr="Propriétés du maillage de calcul.",
20630                         ang="Properties of the calculation mesh." ),
20631 #
20632 # 15. Unite logique d'un fichier a ajouter a HOMARD.Configuration
20633 #
20634   b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \
20635                                 (VERSION_HOMARD == 'V10_N_PERSO') " ,
20636                                 fr="Fichier supplémentaire.",
20637                                 ang="Additional file.",
20638 #
20639   UNITE = SIMP(statut='f',typ='I',
20640                fr="Unite logique du fichier à ajouter à HOMARD.Configuration",
20641                ang="Additional file to HOMARD.Configuration" ),
20642 #
20643   ) ,
20644 #
20645 # 16. Gestion des mailles autres que celles compatibles avec HOMARD
20646 #       "REFUSER" : elles sont refusées (defaut)
20647 #       "IGNORER" : elles sont ignorées
20648 #
20649   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
20650                              fr="Acceptation de mailles incompatibles avec HOMARD",
20651                              ang="Incompatible meshes for HOMARD" ),
20652 #
20653 ) ;
20654 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
20655 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20656 # ======================================================================
20657 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
20658 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20659 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20660 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20661 # (AT YOUR OPTION) ANY LATER VERSION.
20662 #
20663 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20664 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20665 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20666 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20667 #
20668 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20669 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20670 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20671 # ======================================================================
20672 # RESPONSABLE GALENNE E.GALENNE
20673 from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops
20674 def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,RESU_THER,**args):
20675   self.type_sdprod(MODELE,modele_sdaster)
20676   if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
20677   if CARA_ELEM  != None:self.type_sdprod(CARA_ELEM,cara_elem)
20678   if FOND_FISS  != None:self.type_sdprod(FOND_FISS,fond_fiss)
20679   if RESU_THER  != None:self.type_sdprod(RESU_THER,evol_ther)
20680   return evol_noli
20681
20682 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod,
20683                       fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL",
20684                       reentrant='n',
20685             UIinfo={"groupes":("Résolution","Outils-métier",)},
20686
20687          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
20688                                into=("SAIN",
20689                                      "FISS_COUDE",
20690                                      "FISS_AXIS_DEB",
20691                                      "SOUS_EPAIS_COUDE"
20692                                      ) ),
20693
20694          CL_BOL_P2_GV    =FACT(statut='f',
20695            ANGLE           =SIMP(statut='o',typ='R' ),
20696            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
20697          ),
20698
20699          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
20700          MODELE          =SIMP(statut='o',typ=CO,),
20701          CHAM_MATER      =SIMP(statut='f',typ=CO,),
20702          CARA_ELEM       =SIMP(statut='f',typ=CO,),
20703          FOND_FISS       =SIMP(statut='f',typ=CO,),
20704          RESU_THER       =SIMP(statut='f',typ=CO,),
20705
20706          AFFE_MATERIAU   =FACT(statut='o',max=3,
20707            regles=(UN_PARMI('TOUT','GROUP_MA'),),
20708            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20709            GROUP_MA        =SIMP(statut='f',typ=grma,into=("COUDE","BOL") ),
20710            MATER           =SIMP(statut='o',typ=mater_sdaster ),
20711            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
20712          ),
20713
20714          PRES_REP        =FACT(statut='f',
20715            PRES            =SIMP(statut='o',typ='R' ),
20716            EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20717            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
20718            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20719          ),
20720
20721          ECHANGE         =FACT(statut='f',
20722            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20723            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20724          ),
20725
20726          TORS_P1         =FACT(statut='f',max=6,
20727            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
20728            FX              =SIMP(statut='f',typ='R' ),
20729            FY              =SIMP(statut='f',typ='R' ),
20730            FZ              =SIMP(statut='f',typ='R' ),
20731            MX              =SIMP(statut='f',typ='R' ),
20732            MY              =SIMP(statut='f',typ='R' ),
20733            MZ              =SIMP(statut='f',typ='R' ),
20734            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20735          ),
20736
20737
20738          COMP_ELAS       =C_COMP_ELAS('MACR_ASCOUF_CALC'),
20739
20740          SOLVEUR         =C_SOLVEUR(),
20741
20742          CONVERGENCE     =C_CONVERGENCE(),
20743
20744          NEWTON          =C_NEWTON(),
20745
20746          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
20747
20748          INCREMENT       =C_INCREMENT(),
20749
20750          THETA_3D        =FACT(statut='f',max='**',
20751            R_INF           =SIMP(statut='o',typ='R' ),
20752            R_SUP           =SIMP(statut='o',typ='R' ),
20753          ),
20754
20755          IMPR_TABLE      =FACT(statut='f',
20756            regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
20757             PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
20758             PRESENT_PRESENT('TOUT_PARA','R_CINTR',  ),
20759                    UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
20760            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4,
20761                                  into=("TRESCA_MEMBRANE",
20762                                        "TRESCA_MFLE",
20763                                        "TRESCA",
20764                                        "SI_LONG"
20765                                        "SI_RADI"
20766                                        "SI_CIRC"
20767                                        ) ),
20768            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20769            ANGLE           =SIMP(statut='f',typ='R',max='**' ),
20770            R_CINTR         =SIMP(statut='f',typ='R',max='**' ),
20771            POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
20772            POSI_ANGUL      =SIMP(statut='f',typ='R',max='**' ),
20773            TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
20774          ),
20775
20776          IMPRESSION      =FACT(statut='f',
20777            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
20778                                  into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
20779
20780            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
20781              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
20782            ),
20783
20784            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
20785              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
20786            ),
20787
20788          ),
20789
20790          TITRE           =SIMP(statut='f',typ='TXM' ),
20791
20792          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20793 )  ;
20794 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
20795 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20796 # ======================================================================
20797 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20798 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20799 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20800 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20801 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20802 #
20803 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20804 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20805 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20806 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20807 #
20808 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20809 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20810 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20811 # ======================================================================
20812 # RESPONSABLE GALENNE E.GALENNE
20813 from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops
20814 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster,
20815             fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)",
20816             UIinfo={"groupes":("Maillage","Outils-métier",)},reentrant='n',
20817
20818          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
20819
20820          EXEC_MAILLAGE   =FACT(statut='o',
20821            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
20822            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
20823            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
20824            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
20825          ),
20826
20827          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
20828
20829          COUDE           =FACT(statut='o',
20830            ANGLE           =SIMP(statut='o',typ='R' ),  
20831            R_CINTR         =SIMP(statut='o',typ='R' ),  
20832            L_TUBE_P1       =SIMP(statut='o',typ='R' ),  
20833            L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20834            NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),  
20835            SYME            =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
20836            TRANSFORMEE     =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
20837            b_transf_coude  =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
20838               DEXT            =SIMP(statut='o',typ='R' ),  
20839               EPAIS           =SIMP(statut='o',typ='R' ),  
20840               SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20841               BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
20842            ),
20843            b_transf_tube   =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
20844               TRAN_EPAIS      =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
20845               b_trans_epais_oui    =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
20846                       regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
20847                               UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
20848                       DEXT_T1         =SIMP(statut='o',typ='R' ),  
20849                       EPAIS_T1        =SIMP(statut='o',typ='R' ),  
20850                       EPAIS_T2        =SIMP(statut='o',typ='R' ),  
20851                       EPAIS_TI        =SIMP(statut='f',typ='R' ),  
20852                       ANGL_TETA1      =SIMP(statut='o',typ='R' ),  
20853                       ANGL_TETA2      =SIMP(statut='f',typ='R' ),  
20854                       ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),  
20855                       POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),  
20856               ),
20857               b_trans_epais_non    =BLOC(condition = "TRAN_EPAIS == 'NON' ",
20858                       DEXT            =SIMP(statut='o',typ='R' ),  
20859                       EPAIS           =SIMP(statut='o',typ='R' ),  
20860                       SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20861                       BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
20862               ),
20863            ),
20864          ),
20865
20866          SOUS_EPAIS_COUDE=FACT(statut='f',
20867            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
20868                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
20869            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
20870            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
20871            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
20872            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
20873            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
20874            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
20875            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
20876            AZIMUT          =SIMP(statut='f',typ='R' ),  
20877            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
20878            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
20879            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
20880            NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),  
20881            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20882          ),
20883
20884          SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
20885            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
20886                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
20887            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
20888            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
20889            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
20890            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
20891            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
20892            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
20893            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
20894            AZIMUT          =SIMP(statut='f',typ='R' ),  
20895            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
20896            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
20897            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
20898            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20899          ),
20900
20901          FISS_COUDE      =FACT(statut='f',
20902            regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
20903            AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),  
20904            b_axis_non    =BLOC(condition = "AXIS == 'NON' ",
20905                    LONGUEUR        =SIMP(statut='o',typ='R' ),  
20906            ),
20907            b_axis_oui    =BLOC(condition = "AXIS == 'OUI' ",
20908                    LONGUEUR        =SIMP(statut='f',typ='R' ),  
20909            ),
20910            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
20911            ABSC_CURV       =SIMP(statut='f',typ='R' ),  
20912            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
20913            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
20914            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
20915            ORIEN           =SIMP(statut='o',typ='R',
20916                                  into=(45.,-45.,90.,0.E+0) ),
20917            NB_TRANCHE      =SIMP(statut='o',typ='I' ),  
20918            NB_SECTEUR      =SIMP(statut='o',typ='I' ),  
20919            NB_COURONNE     =SIMP(statut='o',typ='I' ),  
20920            RAYON_TORE      =SIMP(statut='f',typ='R' ),  
20921            COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),  
20922            COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),  
20923            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),  
20924          ),
20925
20926          IMPRESSION      =FACT(statut='f',max='**',
20927            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
20928            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",   
20929                                  into=("ASTER","IDEAS","CASTEM") ),
20930            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
20931              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
20932            ),  
20933            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
20934              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
20935            ),
20936            FICHIER         =SIMP(statut='f',typ='TXM' ),  
20937            UNITE           =SIMP(statut='f',typ='I' ),  
20938          ),
20939
20940          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20941 )  ;
20942 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
20943 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20944 # ======================================================================
20945 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
20946 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20947 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20948 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20949 # (AT YOUR OPTION) ANY LATER VERSION.
20950 #
20951 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20952 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20953 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20954 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20955 #
20956 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20957 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20958 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20959 # ======================================================================
20960 # RESPONSABLE GALENNE E.GALENNE
20961 from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops
20962
20963 def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,RESU_THER,**args):
20964   if MODELE      != None:self.type_sdprod(MODELE,modele_sdaster)
20965   if CHAM_MATER  != None:self.type_sdprod(CHAM_MATER,cham_mater)
20966   if CARA_ELEM   != None:self.type_sdprod(CARA_ELEM,cara_elem)
20967   if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
20968   if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
20969   if RESU_THER   != None:self.type_sdprod(RESU_THER,evol_ther)
20970   return evol_noli
20971
20972 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod,
20973             fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ",
20974             UIinfo={"groupes":("Résolution","Outils-métier",)},reentrant='n',
20975
20976          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
20977                                into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
20978                                      "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
20979
20980          TUBULURE        =FACT(statut='o',
20981            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
20982          ),
20983          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
20984          MODELE          =SIMP(statut='f',typ=CO,),
20985          CHAM_MATER      =SIMP(statut='f',typ=CO,),
20986          CARA_ELEM       =SIMP(statut='f',typ=CO,),
20987          FOND_FISS_1     =SIMP(statut='f',typ=CO,),
20988          FOND_FISS_2     =SIMP(statut='f',typ=CO,),
20989          RESU_THER       =SIMP(statut='f',typ=CO,),
20990
20991          AFFE_MATERIAU   =FACT(statut='o',max=3,
20992            regles=(UN_PARMI('TOUT','GROUP_MA'),),
20993            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
20994            GROUP_MA        =SIMP(statut='f',typ=grma,into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
20995            MATER           =SIMP(statut='o',typ=mater_sdaster),
20996            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
20997            RCCM            =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
20998          ),
20999
21000          EQUILIBRE       =FACT(statut='o',
21001            NOEUD           =SIMP(statut='o',typ=no),
21002          ),
21003
21004          PRES_REP        =FACT(statut='o',
21005            PRES            =SIMP(statut='o',typ='R'),
21006            NOEUD           =SIMP(statut='f',typ=no),
21007            EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21008            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21009            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21010          ),
21011
21012          ECHANGE         =FACT(statut='f',
21013            COEF_H_TUBU     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21014            COEF_H_CORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21015            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21016          ),
21017
21018          TORS_CORP       =FACT(statut='f',max=6,
21019            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
21020            NOEUD           =SIMP(statut='o',typ=no),
21021            FX              =SIMP(statut='f',typ='R'),
21022            FY              =SIMP(statut='f',typ='R'),
21023            FZ              =SIMP(statut='f',typ='R'),
21024            MX              =SIMP(statut='f',typ='R'),
21025            MY              =SIMP(statut='f',typ='R'),
21026            MZ              =SIMP(statut='f',typ='R'),
21027            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21028          ),
21029
21030          TORS_TUBU       =FACT(statut='f',max=6,
21031            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
21032            FX              =SIMP(statut='f',typ='R'),
21033            FY              =SIMP(statut='f',typ='R'),
21034            FZ              =SIMP(statut='f',typ='R'),
21035            MX              =SIMP(statut='f',typ='R'),
21036            MY              =SIMP(statut='f',typ='R'),
21037            MZ              =SIMP(statut='f',typ='R'),
21038            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21039          ),
21040
21041          COMP_ELAS       =C_COMP_ELAS('MACR_ASPIC_CALC'),
21042
21043          THETA_3D        =FACT(statut='f',max='**',
21044            R_INF           =SIMP(statut='o',typ='R'),
21045            R_SUP           =SIMP(statut='o',typ='R'),
21046          ),
21047
21048          OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ),
21049          BORNES          =FACT(statut='f',max='**',
21050            NUME_ORDRE      =SIMP(statut='o',typ='I'),
21051            VALE_MIN        =SIMP(statut='o',typ='R'),
21052            VALE_MAX        =SIMP(statut='o',typ='R'),
21053          ),
21054
21055          SOLVEUR         =C_SOLVEUR(),
21056
21057          CONVERGENCE     =C_CONVERGENCE(),
21058
21059          NEWTON          =C_NEWTON(),
21060
21061          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
21062
21063          INCREMENT       =C_INCREMENT(),
21064
21065          PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),
21066
21067          IMPRESSION      =FACT(statut='f',
21068            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
21069                                  into=("RESULTAT","ASTER","CASTEM","IDEAS")),
21070
21071            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
21072              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
21073            ),
21074
21075            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
21076              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
21077            ),
21078
21079            b_extrac        =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
21080                                  fr="extraction d un champ de grandeur",
21081              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
21082              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","SIEQ_ELNO","TEMP")),
21083
21084              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21085              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21086              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21087            ),
21088          ),
21089
21090          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21091
21092          TITRE           =SIMP(statut='f',typ='TXM'),
21093 )
21094 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21095 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21096 # ======================================================================
21097 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21098 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21099 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21100 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21101 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21102 #
21103 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21104 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21105 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21106 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21107 #
21108 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21109 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21110 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21111 # ======================================================================
21112 # RESPONSABLE GALENNE E.GALENNE
21113
21114 from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops
21115
21116 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n',
21117             fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
21118             UIinfo={"groupes":("Maillage","Outils-métier",)},
21119
21120          EXEC_MAILLAGE   =FACT(statut='o',
21121            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")),
21122            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
21123            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
21124            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
21125          ),
21126
21127          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
21128
21129          RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
21130
21131          TUBULURE        =FACT(statut='o',
21132            E_BASE          =SIMP(statut='o',typ='R'),  
21133            DEXT_BASE       =SIMP(statut='o',typ='R'),  
21134            L_BASE          =SIMP(statut='o',typ='R'),  
21135            L_CHANF         =SIMP(statut='o',typ='R'),  
21136            E_TUBU          =SIMP(statut='o',typ='R'),  
21137            DEXT_TUBU       =SIMP(statut='o',typ='R'),  
21138            Z_MAX           =SIMP(statut='o',typ='R'),  
21139            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
21140            L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
21141          ),
21142
21143          SOUDURE         =FACT(statut='o',
21144            H_SOUD          =SIMP(statut='o',typ='R'),  
21145            ANGL_SOUD       =SIMP(statut='o',typ='R'),  
21146            JEU_SOUD        =SIMP(statut='o',typ='R'),  
21147          ),
21148
21149          CORPS           =FACT(statut='o',
21150            E_CORP          =SIMP(statut='o',typ='R'),  
21151            DEXT_CORP       =SIMP(statut='o',typ='R'),  
21152            X_MAX           =SIMP(statut='o',typ='R'),  
21153          ),
21154
21155          FISS_SOUDURE    =FACT(statut='f',
21156            TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
21157            AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
21158            PROFONDEUR      =SIMP(statut='o',typ='R'),  
21159            LONGUEUR        =SIMP(statut='f',typ='R'),  
21160            AZIMUT          =SIMP(statut='o',typ='R'),  
21161            RAYON_TORE      =SIMP(statut='f',typ='R'),  
21162            POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
21163            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
21164            LIGA_INT        =SIMP(statut='f',typ='R'),  
21165            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
21166            COEF_MULT_RC1   =SIMP(statut='f',typ='R'),  
21167            COEF_MULT_RC2   =SIMP(statut='f',typ='R'),  
21168            COEF_MULT_RC3   =SIMP(statut='f',typ='R'),  
21169            NB_TRANCHE      =SIMP(statut='f',typ='I'),  
21170            NB_SECTEUR      =SIMP(statut='f',typ='I'),  
21171            NB_COURONNE     =SIMP(statut='f',typ='I'),  
21172          ),
21173
21174          IMPRESSION      =FACT(statut='f',max='**',
21175            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
21176            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
21177
21178            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
21179              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
21180            ),  
21181
21182            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
21183              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
21184            ),
21185            FICHIER         =SIMP(statut='f',typ='TXM'),  
21186            UNITE           =SIMP(statut='f',typ='I'),  
21187          ),
21188
21189          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21190 )  ;
21191 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21192 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21193 # ======================================================================
21194 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
21195 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21196 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21197 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21198 # (AT YOUR OPTION) ANY LATER VERSION.
21199 #
21200 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21201 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21202 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21203 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21204 #
21205 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21206 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21207 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21208 # ======================================================================
21209 # RESPONSABLE FLEJOU J.L.FLEJOU
21210
21211 from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
21212
21213 MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
21214                        reentrant='n',
21215          UIinfo={"groupes":("Modélisation",)},
21216          fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
21217          regles=( EXCLUS('SYME_X','GROUP_MA_BORD'),
21218                   EXCLUS('SYME_Y','GROUP_MA_BORD'),
21219                 ),
21220
21221          MAILLAGE       =SIMP(statut='f',typ=maillage_sdaster,
21222                            fr="Nom du concept maillage"),
21223          b_maillage=BLOC( condition = "MAILLAGE == None",
21224             regles=( PRESENT_PRESENT('FORMAT','UNITE') ),
21225             FORMAT         =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
21226                               fr="Format du fichier"),
21227             UNITE          =SIMP(statut='f',typ='I',defaut= 20,
21228                               fr="Unite correspondant au format du fichier maillage"),
21229          ),
21230
21231          ORIG_INER      =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
21232                            fr="Point par rapport auquel sont calculées les inerties"),
21233          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21234
21235          SYME_X         =SIMP(statut='f',typ='TXM',into=("OUI",),
21236                            fr="demi maillage par rapport a x=0"),
21237          SYME_Y         =SIMP(statut='f',typ='TXM',into=("OUI",),
21238                            fr="demi maillage par rapport a y=0"),
21239
21240          GROUP_MA       =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
21241                            fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
21242
21243          GROUP_MA_BORD  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
21244                            fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
21245
21246             b_gma_bord  =BLOC( condition = "GROUP_MA_BORD != None",
21247                fr=" calcul des carac. mecaniques",
21248                regles=(UN_PARMI('NOEUD','GROUP_NO')),
21249                NOEUD           =SIMP(statut='f',typ=no,  max='**',
21250                                  fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
21251                GROUP_NO        =SIMP(statut='f',typ=grno,max='**',
21252                                  fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
21253                GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
21254                                  fr="groupes de mailles linéiques bordant des trous dans la section"),
21255             ),
21256
21257             b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
21258                fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
21259                regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
21260                LONGUEUR        =SIMP(statut='f',typ='R',
21261                                  fr="Longueur du réseau de poutres"),
21262                MATERIAU        =SIMP(statut='f',typ=mater_sdaster,
21263                                  fr="Materiau elastique lineaire du reseau"),
21264                LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
21265                                  fr="type de conditions aux limites sur le plancher supérieur" ),
21266             ),
21267 )
21268 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
21269 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21270 # ======================================================================
21271 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
21272 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21273 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21274 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21275 # (AT YOUR OPTION) ANY LATER VERSION.
21276 #
21277 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21278 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21279 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21280 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21281 #
21282 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21283 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21284 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21285 # ======================================================================
21286 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
21287
21288 from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
21289
21290 def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
21291   self.type_sdprod(RESULTAT,AsType(RESU_INIT))
21292   self.type_sdprod(MAILLAGE,maillage_sdaster)
21293   return None
21294
21295
21296 MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
21297              UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
21298              fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
21299
21300
21301              # SD résultat ,modèle et champs à "éclater" :
21302              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
21303              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
21304              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
21305
21306              # paramètres numériques de la commande :
21307              SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
21308              TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
21309
21310              # concepts produits par la commande :
21311              RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
21312              MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
21313
21314              # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :
21315              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21316              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21317              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21318
21319              # Sélection des numéros d'ordre :
21320              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
21321              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21322              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21323              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
21324              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21325              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
21326              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
21327              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21328                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21329              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21330                  PRECISION       =SIMP(statut='o',typ='R',),),
21331             )
21332 #& MODIF COMMANDE  DATE 28/02/2011   AUTEUR BOTTONI M.BOTTONI 
21333 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21334 # ======================================================================
21335 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
21336 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21337 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21338 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21339 # (AT YOUR OPTION) ANY LATER VERSION.
21340 #
21341 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21342 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21343 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21344 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21345 #
21346 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21347 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21348 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21349 # ======================================================================
21350 # RESPONSABLE BOTTONI M.BOTTONI
21351
21352 from Macro.macr_ecre_calc_ops import macr_ecre_calc_ops
21353
21354 def macr_ecre_calc_prod(self,TABLE,DEBIT,**args):
21355
21356   self.type_sdprod(TABLE,table_sdaster)
21357   self.type_sdprod(DEBIT,table_sdaster)
21358   return None
21359
21360 MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC",op=macr_ecre_calc_ops,sd_prod=macr_ecre_calc_prod,reentrant='n',
21361                      UIinfo={"groupes":("Résolution","Outils-métier",)},fr="Procedure de couplage avec Ecrevisse",
21362
21363                      regles = (UN_PARMI('LOGICIEL','VERSION'),),
21364
21365 #      CONCEPTS SORTANT : 2 TABLES POUR LE POST-TRAITEMENT
21366 #      ********************************************
21367          TABLE              =SIMP(statut='o',typ=CO),
21368          DEBIT              =SIMP(statut='o',typ=CO),
21369
21370 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
21371 #      *******************************************
21372
21373          FISSURE            =FACT(statut='o',min=1,max=1,
21374            LONGUEUR            =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Longueur de la fissure [zl]"),
21375            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]"),
21376            ANGLE               =SIMP(statut='o',typ='R',fr="Angle par rapport a l'ascendante verticale (degres)"),
21377            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]"),
21378            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]"),
21379            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
21380              LISTE_COTES_AH      =SIMP(statut='o',typ='R',max='**',
21381                                        fr="Liste des cotes des points definissant le grand axe de la section",
21382                                        validators=NoRepeat()),
21383              LISTE_VAL_AH        =SIMP(statut='o',typ='R',max='**',
21384                                        fr="Liste des valeurs des points definissant le grand axe de la section",),
21385              LISTE_COTES_BL      =SIMP(statut='o',typ='R',max='**',
21386                                        fr="Liste des cotes des points definissant le petit axe de la section",
21387                                        validators=NoRepeat()),
21388              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
21389                                        fr="Liste des valeurs des points definissant le petit axe de la section",),
21390            ),
21391            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
21392              LISTE_COTES_AH      =SIMP(statut='o',typ='R',max='**',
21393                                        fr="Liste des cotes des points definissant la hauteur de la section",
21394                                        validators=NoRepeat()),
21395              LISTE_VAL_AH        =SIMP(statut='o',typ='R',max='**',
21396                                        fr="Liste des valeurs des points definissant la hauteur de la section",),
21397              LISTE_COTES_BL      =SIMP(statut='o',typ='R',max='**',
21398                                        fr="Liste des cotes des points definissant la largeur de la section",
21399                                        validators=NoRepeat()),
21400              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
21401                                        fr="Liste des valeurs des points definissant la largeur de la section",),
21402            ),
21403          ),
21404
21405
21406 #      DONNEES RELATIVES A L"ECOULEMENT
21407 #      ********************************
21408
21409          ECOULEMENT         =FACT(statut='f',min=1,max=1,
21410            PRES_ENTREE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
21411            PRES_SORTIE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
21412            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
21413            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee",
21414              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21415            ),
21416            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique",
21417              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
21418            ),
21419            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee",
21420              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21421            ),
21422            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee",
21423              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21424              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
21425            ),
21426            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee",
21427              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
21428              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
21429            ),
21430            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul",
21431              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21432            ),
21433          ),
21434
21435
21436 #      DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI
21437 #      *************************************************************
21438
21439          TEMPERATURE        =FACT(statut='f',min=1,max=1,
21440            GRADIENT            =SIMP(statut='o',typ='TXM',into=("FOURNI","IMPOSE","CALCULE"),
21441                                      fr="Modele de calcul du gradient de temperature [imograd]" ),
21442            b_gradient_fourni   =BLOC(condition="GRADIENT=='FOURNI'",fr="Distribution de temperature fournie [imograd=-1]",
21443              LISTE_COTES_TEMP    =SIMP(statut='o',typ='R',max='**',fr="Liste des cotes pour les temperatures",
21444                                        validators=NoRepeat() ),
21445              LISTE_VAL_TEMP      =SIMP(statut='o',typ='R',max='**',fr="Liste des valeurs de temperature", ),
21446            ),
21447            b_gradient_impose   =BLOC(condition="GRADIENT=='IMPOSE'",fr="Distribution imposee de temperature [imograd=0]",
21448              TEMP1               =SIMP(statut='o',typ='R',
21449                                        fr="Gradient de temperature de la paroi le long de l'ecoulement (degC/m) [tm1]", ),
21450              TEMP2               =SIMP(statut='o',typ='R',fr="Temperature de la paroi a l'entree (degC) [tm2]", ),
21451            ),
21452            b_gradient_calcule  =BLOC(condition="GRADIENT=='CALCULE'",fr="Profil de temperature calcule [imograd=1]",
21453              EPAISSEUR_PAROI     =SIMP(statut='o',typ='R',fr="Epaisseur de la paroi (m) [epp]", ),
21454              CONVECTION_AMONT    =SIMP(statut='o',typ='R',
21455                                        fr="Coefficient de convection a la surface de la paroi cote amont (W/degC/m2) [alphe]", ),
21456              CONVECTION_AVAL     =SIMP(statut='o',typ='R',
21457                                        fr="Coefficient de convection a la surface de la paroi cote aval (W/degC/m2) [alphs]", ),
21458              LAMBDA              =SIMP(statut='o',typ='R',fr="Conduction thermique de la paroi (W/degC/m) [lambd]", ),
21459              TEMP_FLUIDE_AVAL    =SIMP(statut='o',typ='R',fr="Temperature du fluide cote aval (degC) [ts]", ),
21460            ),
21461          ),
21462
21463
21464 #      CHOIX DES MODELES
21465 #      *****************
21466
21467          MODELE_ECRE        =FACT(statut='f',min=1,max=1,
21468            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
21469                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
21470            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
21471                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
21472            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
21473              PRESS_EBULLITION    =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]"),
21474            ),
21475            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]"),
21476            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
21477              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]"),
21478              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]"),
21479            ),
21480
21481            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]"),
21482            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
21483              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
21484              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
21485            ),
21486          ),
21487
21488
21489 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
21490 #      ********************************************
21491
21492          CONVERGENCE        =FACT(statut='f',min=1,max=1,
21493            KGTEST              =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
21494                                      fr="Parametre de l'algorithme iteratif [kgtest]" ),
21495            ITER_GLOB_MAXI      =SIMP(statut='f',typ='I',defaut= 400,
21496                                      fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
21497            CRIT_CONV_DEBI      =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
21498                                      fr="Critere de convergence en debit [precdb]" ),
21499          ),
21500
21501
21502 #      GENERAL
21503 #      *******
21504
21505          COURBES            =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
21506                                   fr="Generation eventuelle des courbes" ),
21507          LOGICIEL           =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
21508          VERSION            =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")),
21509          ENTETE             =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
21510          IMPRESSION         =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
21511          INFO               =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
21512
21513 )  ;
21514 #& MODIF COMMANDE  DATE 28/02/2011   AUTEUR BOTTONI M.BOTTONI 
21515 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21516 # ======================================================================
21517 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
21518 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21519 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21520 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21521 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21522 #                                                                       
21523 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21524 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21525 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21526 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21527 #                                                                       
21528 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21529 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21530 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21531 # ======================================================================
21532 # RESPONSABLE BOTTONI M.BOTTONI
21533
21534 from Macro.macr_ecrevisse_ops import macr_ecrevisse_ops
21535
21536 def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args):
21537     # On definit ici les concepts produits
21538     self.type_sdprod(TABLE,table_sdaster)
21539     self.type_sdprod(TEMPER,evol_ther)
21540     self.type_sdprod(DEBIT,table_sdaster)
21541     # concept retourne
21542     return evol_noli
21543
21544
21545
21546 MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE",op=macr_ecrevisse_ops,sd_prod=macr_ecrevisse_prod,reentrant='f',
21547                        UIinfo={"groupes":("Résolution","Outils-métier",)},fr="Procedure de couplage avec Ecrevisse",
21548
21549        reuse  = SIMP(statut='f',typ='evol_noli'),
21550        regles = (EXCLUS('TEMPER','ETAT_INIT'),
21551                  UN_PARMI('LOGICIEL','VERSION'),),
21552
21553 #      CONCEPT SORTANT
21554 #      ********************************************
21555          TABLE              =SIMP(statut='f',typ=CO),
21556          DEBIT              =SIMP(statut='f',typ=CO),
21557          TEMPER             =SIMP(statut='f',typ=CO),
21558
21559 #      ETAT_INITIAL
21560 #      ********************************************
21561          ETAT_INIT       =FACT(statut='f',
21562              EVOL_NOLI       =SIMP(statut='o',typ=evol_noli),
21563              EVOL_THER       =SIMP(statut='o',typ=evol_ther),
21564              NUME_ORDRE      =SIMP(statut='o',typ='I'),
21565          ),
21566
21567
21568 #      MODELES MECANIQUES
21569 #      ********************************************
21570          MODELE_MECA        =SIMP(statut='o',typ=modele_sdaster),
21571          MODELE_THER        =SIMP(statut='o',typ=modele_sdaster),
21572
21573
21574 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
21575 #      *******************************************
21576          FISSURE            =FACT(statut='o',min=1,max='**',
21577            PREFIXE_FICHIER     =SIMP(statut='f',typ='TXM',validators=LongStr(1,8)),
21578            GROUP_MA            =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2,
21579                                      fr="Groupe(s) des noeuds definissant les levres de la fissure"),
21580            GROUP_NO_ORIG       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
21581            GROUP_NO_EXTR       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
21582            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ),
21583            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ),
21584            TORTUOSITE          =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0,
21585                                        fr="Coefficient de tortuosite de la fissure" ),
21586            OUVERT_REMANENTE    =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"),
21587            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ),
21588            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
21589              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
21590                                        fr="Liste des cotes des points definissant le petit axe de la section",
21591                                        validators=NoRepeat() ),
21592              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
21593                                        fr="Liste des valeurs des points definissant le petit axe de la section", ),
21594            ),
21595            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
21596              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
21597                                        fr="Liste des cotes des points definissant la largeur de la section",validators=NoRepeat()),
21598              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
21599                                        fr="Liste des valeurs des points definissant la largeur de la section", ),
21600            ),
21601          ),
21602
21603
21604 #      DONNEES RELATIVES A L"ECOULEMENT
21605 #      ********************************
21606          ECOULEMENT         =FACT(statut='o',min=1,max=1,
21607                                   regles=(UN_PARMI('PRES_ENTREE','PRES_ENTREE_FO'),
21608                                           UN_PARMI('PRES_SORTIE','PRES_SORTIE_FO'),
21609                                           ),
21610            PRES_ENTREE         =SIMP(statut='f',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
21611            PRES_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21612                                      fr="Evolution de la pression de stagnation a l'entree (Pa) [pe]" ),
21613            PRES_SORTIE         =SIMP(statut='f',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
21614            PRES_SORTIE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21615                                      fr="Evolution de la pression de stagnation a la sortie (Pa) [ps]" ),
21616            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
21617            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",
21618                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
21619                                      fr="Eau sous-refroidie ou saturee",
21620              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21621              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21622                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
21623            ),
21624            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",
21625                                      regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO')),
21626                                      fr="Fluide diphasique",
21627              TITR_MASS           =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
21628              TITR_MASS_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21629                                        fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ),
21630            ),
21631            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",
21632                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
21633                                      fr="Vapeur saturee ou surchauffee",
21634              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21635              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21636                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
21637            ),
21638            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",
21639                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO'),
21640                                              UN_PARMI('PRES_PART', 'PRES_PART_FO')),
21641                                      fr="Air + vapeur surchauffee",
21642              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21643              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21644                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
21645              PRES_PART           =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
21646              PRES_PART_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21647                                        fr="Evolution de la pression partielle air en entree (Pa) [pae]" ),
21648            ),
21649            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",
21650                                      regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO'),
21651                                              UN_PARMI('PRES_PART', 'PRES_PART_FO')),
21652                                      fr="Air + vapeur saturee",
21653              TITR_MASS           =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
21654              TITR_MASS_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21655                                        fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ),
21656              PRES_PART           =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
21657              PRES_PART_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21658                                        fr="Evolution de la pression partielle air en entree (Pa) [pae]" ),
21659            ),
21660            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",
21661                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
21662                                      fr="Air seul",
21663              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
21664              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
21665                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
21666            ),
21667          ),
21668
21669          LIST_INST =SIMP(statut='f',typ=(listr8_sdaster), fr="Liste des instants de calcul imposes" ),
21670
21671 #      CHOIX DES MODELES
21672 #      *****************
21673
21674          MODELE_ECRE        =FACT(statut='o',min=1,max=1,
21675            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
21676                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
21677            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
21678                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
21679            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
21680              PRESS_EBULLITION  =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ),
21681            ),
21682            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-3,-2,-1,0,1,2,3),fr="Correlation de frottement [ifrot]" ),
21683            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
21684              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ),
21685              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ),
21686            ),
21687
21688            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-2,-1,0,1,2),fr="Transfert de chaleur [ichal]" ),
21689            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
21690              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
21691              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
21692            ),
21693          ),
21694
21695
21696 #      CRITERE DE CONVERGENCE
21697 #      **********************
21698
21699          CONV_CRITERE       =FACT(statut='o',min=1,max=1,
21700            TEMP_REF            =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Temperature de reference pour le calcul du critere"),
21701            PRES_REF            =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Pression de reference pour le calcul du critere"),
21702            CRITERE             =SIMP(statut='o',typ='TXM',defaut="TEMP_PRESS",into=("TEMP_PRESS","EXPLICITE","TEMP","PRESS"),
21703                                      fr="La nature du critere pour la convergence"),
21704            b_critere_autre     =BLOC(condition="CRITERE=='TEMP_PRESS' or CRITERE=='TEMP' or CRITERE=='PRESS'",
21705                                      fr="Critere de convergence temp_press, temp, ou press",
21706              SUBD_NIVEAU         =SIMP(statut='f',typ='I',val_min=2,defaut=3,
21707                                        fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
21708              SUBD_PAS_MINI       =SIMP(statut='f',typ='R',val_min=0.0, fr="Pas de temps en dessous duquel on ne subdivise plus"),
21709              NUME_ORDRE_MIN      =SIMP(statut='f',typ='I',val_min=-1,defaut=-1,
21710                                        fr="Numero d'ordre a partir duquel le critere est pris en compte"),
21711              PREC_CRIT           =SIMP(statut='f',typ='R',val_min=1.0E-2,defaut=1.0,
21712                                        fr="Valeur du critere pour l'erreur de convergence"),
21713            ),
21714          ),
21715
21716
21717 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
21718 #      ********************************************
21719
21720          CONVERGENCE_ECREVISSE =FACT(statut='f',min=1,max=1,
21721            KGTEST                 =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
21722                                         fr="Parametre de l'algorithme iteratif [kgtest]" ),
21723            ITER_GLOB_MAXI         =SIMP(statut='f',typ='I',defaut= 400,
21724                                         fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
21725            CRIT_CONV_DEBI         =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
21726                                         fr="Critere de convergence en debit [precdb]" ),
21727          ),
21728
21729
21730 #      GENERAL
21731 #      *******
21732
21733          COURBES            = SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
21734                                   fr="Generation eventuelle des courbes" ),
21735          LOGICIEL           = SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
21736          VERSION            =SIMP(statut='f',typ='TXM',into = ("3.1.1","3.1.2","3.2")),
21737          ENTETE             = SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
21738          IMPRESSION         = SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
21739          INFO               = SIMP(statut='f',typ='I',defaut="1",into=(1,2) ),
21740
21741 #      DONNEES POUR STAT_NON_LINE ET THER_NON_LINE
21742 #      *******************************************
21743
21744          # copie de stat_non_line.capy des options des mots cles qui nous interessent
21745
21746          # donnees communes
21747
21748          CHAM_MATER         =SIMP(statut='o',typ=cham_mater),
21749          CARA_ELEM          =SIMP(statut='f',typ=cara_elem),
21750
21751          # donnees specifiques a stat_non_line
21752
21753          EXCIT_MECA         =FACT(statut='o',max='**',
21754            CHARGE              =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
21755            FONC_MULT           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21756            TYPE_CHARGE         =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
21757                                      into=("FIXE_CSTE","SUIV","DIDI")),
21758          ),
21759
21760          CONTACT            = SIMP(statut='o',typ=char_contact),
21761
21762          COMP_INCR          =C_COMP_INCR(),
21763          NEWTON             =FACT(statut='d',
21764            REAC_INCR           =SIMP(statut='f',typ='I',defaut= 1 ),
21765            PREDICTION          =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
21766            MATRICE             =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
21767            PAS_MINI_ELAS       =SIMP(statut='f',typ='R',defaut=0.0E+0),
21768            REAC_ITER           =SIMP(statut='f',typ='I',defaut=0),
21769            REAC_ITER_ELAS      =SIMP(statut='f',typ='I',defaut=0),
21770            EVOL_NOLI           =SIMP(statut='f',typ=evol_noli),
21771          ),
21772          CONVERGENCE        =FACT(statut='d',regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
21773            b_refe_rela         =BLOC(condition = "RESI_REFE_RELA != None",
21774                                      regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
21775                                                          'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),
21776                                             ),
21777              SIGM_REFE           =SIMP(statut='f',typ='R'),
21778              EPSI_REFE           =SIMP(statut='f',typ='R'),
21779              FLUX_THER_REFE      =SIMP(statut='f',typ='R'),
21780              FLUX_HYD1_REFE      =SIMP(statut='f',typ='R'),
21781              FLUX_HYD2_REFE      =SIMP(statut='f',typ='R'),
21782              VARI_REFE           =SIMP(statut='f',typ='R'),
21783            ),
21784            RESI_REFE_RELA   =SIMP(statut='f',typ='R'),
21785            RESI_GLOB_MAXI   =SIMP(statut='f',typ='R'),
21786            RESI_GLOB_RELA   =SIMP(statut='f',typ='R'),
21787            ITER_GLOB_MAXI   =SIMP(statut='f',typ='I',defaut=10),
21788            ITER_GLOB_ELAS   =SIMP(statut='f',typ='I',defaut=25),
21789            ARRET            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21790          ),
21791
21792          # donnees specifiques a ther_lineaire
21793
21794          EXCIT_THER         =FACT(statut='o',max='**',
21795            CHARGE              =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
21796            FONC_MULT           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21797          ),
21798          PARM_THETA         =SIMP(statut='f',typ='R',defaut= 0.57),
21799
21800 )
21801 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21802 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21803 # ======================================================================
21804 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21805 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21806 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21807 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21808 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21809 #
21810 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21811 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21812 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21813 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21814 #
21815 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21816 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21817 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21818 # ======================================================================
21819 # RESPONSABLE CORUS M.CORUS
21820
21821 MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
21822                     fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique",
21823                     reentrant='n',
21824             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
21825          regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),
21826                  PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),),
21827          BASE_MODALE     =SIMP(statut='o',typ=mode_meca ),
21828          MATR_RIGI       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),),
21829          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
21830          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
21831          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'), 
21832          SANS_GROUP_NO   =SIMP(statut='f',typ=grno ),
21833          MATR_IMPE       =SIMP(statut='f',typ=matr_asse_gene_c ),
21834          b_matr_impe     =BLOC(condition = "MATR_IMPE != None",
21835              FREQ_EXTR       =SIMP(statut='o',typ='R' ),
21836              AMOR_SOL        =SIMP(statut='f',typ='R',defaut=0.E+0 ),
21837              MATR_IMPE_INIT  =SIMP(statut='f',typ=matr_asse_gene_c ),
21838            ),
21839          CAS_CHARGE      =FACT(statut='f',max='**',
21840            NOM_CAS         =SIMP(statut='o',typ='TXM'),
21841            VECT_ASSE_GENE  =SIMP(statut='o',typ=vect_asse_gene ),
21842          ),
21843 )  ;
21844 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21845 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21846 # ======================================================================
21847 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21848 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21849 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21850 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21851 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21852 #
21853 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21854 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21855 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21856 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21857 #
21858 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21859 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21860 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21861 # ======================================================================
21862 # RESPONSABLE PELLET J.PELLET
21863 MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
21864             UIinfo={"groupes":("Matrices et vecteurs",)},
21865                     fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
21866         regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
21867                 ENSEMBLE('DEFINITION','EXTERIEUR'),),
21868          DEFINITION      =FACT(statut='f',
21869            regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),),
21870            MODELE          =SIMP(statut='o',typ=modele_sdaster),
21871            CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
21872            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
21873            CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
21874            INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
21875            NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
21876            NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
21877            PROJ_MESU       =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1),
21878 #           MODE_MESURE     =SIMP(statut='f',typ=( mode_meca,base_modale) ),
21879            MODE_MESURE     =SIMP(statut='f',typ= mode_meca ), 
21880          ),
21881          EXTERIEUR       =FACT(statut='f',
21882            regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
21883            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21884            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21885          ),
21886          RIGI_MECA       =FACT(statut='f',
21887          ),
21888          MASS_MECA       =FACT(statut='f',
21889          ),
21890          AMOR_MECA       =FACT(statut='f',
21891          ),
21892          CAS_CHARGE      =FACT(statut='f',max='**',
21893            NOM_CAS         =SIMP(statut='o',typ='TXM'),
21894            SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21895            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
21896            INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
21897          ),
21898
21899 )  ;
21900 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21901 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21902 # ======================================================================
21903 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
21904 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21905 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21906 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21907 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21908 #                                                                       
21909 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21910 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21911 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21912 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21913 #                                                                       
21914 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21915 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21916 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21917 # ======================================================================
21918 # RESPONSABLE GNICOLAS G.NICOLAS
21919
21920 from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
21921
21922 MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
21923                      docu="U7.04.41",UIinfo={"groupes":("Impression","Outils-métier",)},
21924                      fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
21925                      ang="Print values for the fiability software",
21926 #
21927 # 1. Le niveau d'information
21928 #
21929    INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21930 #
21931 # 2. Impression de la valeur de la cible
21932 #
21933 # 2.1. ==> La table contenant la valeur à imprimer
21934 #
21935    TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
21936                  fr="Table contenant la valeur cible.",
21937                  ang="Table which includes the target value."),
21938 #
21939 # 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
21940 #
21941    NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
21942                     fr="Nom du paramètre associé à la valeur cible.",
21943                     ang="Name of the parameter connected to the target value."),
21944 #
21945 # 3. Impressions des valeurs des éventuels gradients
21946 #
21947    GRADIENTS = FACT(statut='f',min=1,max='**',
21948 #
21949 # 3.1. ==> La table contenant la valeur à imprimer
21950 #
21951        TABLE = SIMP(statut='o',typ=table_sdaster,
21952                     fr="Table contenant le gradient.",
21953                     ang="Table which includes the gradient."),
21954 #
21955 # 3.2. ==> Le paramètre sensible
21956 #
21957        PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
21958                        fr="Paramètre sensible associé au gradient.",
21959                        ang="Sensitivity parameter connected to the gradient."),
21960 #
21961 # 3.3. ==> Le nom du paramètre associé au gradient dans cette table
21962 #
21963        NOM_PARA = SIMP(statut='o',typ='TXM',
21964                        fr="Nom du paramètre associé au gradient.",
21965                        ang="Name of the parameter connected to the gradient."),
21966 #
21967          ),
21968 #
21969 );
21970 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
21971 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21972 # ======================================================================
21973 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
21974 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21975 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21976 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21977 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21978 #                                                                       
21979 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21980 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21981 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21982 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21983 #                                                                       
21984 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21985 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21986 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21987 # ======================================================================
21988 # RESPONSABLE GNICOLAS G.NICOLAS
21989
21990 from Macro.macr_fiabilite_ops import macr_fiabilite_ops
21991
21992 #
21993 #====
21994 # 1. Le retour : une liste de rééls.
21995 #====
21996 #
21997 def macr_fiabilite_prod ( self , **args ):
21998   return listr8_sdaster
21999 #
22000 #====
22001 # 2. L'entete
22002 #====
22003 #
22004 MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
22005                          docu="U7.03.31",UIinfo={"groupes":("Post-traitements","Outils-métier",)},
22006                          sd_prod=macr_fiabilite_prod,
22007                          fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
22008                          ang="Fiability mechanics.",
22009 #
22010 #====
22011 # 3. Le niveau d'information
22012 #====
22013 #
22014    INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
22015 #
22016 #====
22017 # 4. Nom et Version du logiciel de fiabilité
22018 #====
22019 #
22020    LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
22021                    into=("MEFISTO",),
22022                    fr="Nom du logiciel de fiabilité.",
22023                    ang="Fiability software name."),
22024 #
22025    VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
22026                   into=("V3_2", "V3_N"),
22027                   fr="Version du logiciel de fiabilité.",
22028                   ang="Fiability software release."),
22029 #
22030 #====
22031 # 5. Les entrees-sorties du calcul ASTER déterministe
22032 #====
22033 #
22034 # 5.1. ==> Le jeu de commandes déterministe
22035 #
22036    UNITE_ESCL = SIMP(statut="o",typ="I",
22037                      fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
22038                      ang="Logical unit for the commands of the ASTER deterministic calculation."),
22039 #
22040 # 5.2. ==> Le destin des messages produits par ASTER
22041 #
22042    MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
22043                         into=("AUCUN", "DERNIER", "TOUS"),
22044                         fr="Quels messages ASTER récupérer.",
22045                         ang="Which ASTER messages must be kept."),
22046 #
22047 #====
22048 # 6. Options
22049 #====
22050 # 6.1. ==> Générales
22051 #
22052 # 6.1.1. ==> La valeur du seuil
22053 #
22054    SEUIL = SIMP(statut="o",typ="R",max=1,
22055                 fr="Le seuil de défaillance.",
22056                 ang="Failure threshold."),
22057 #
22058 # 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
22059 #            la défaillance a lieu au dessus d'un seuil maximum ou
22060 #            en dessous d'un seuil minimum
22061 #
22062    SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
22063                      into=("MINIMUM","MAXIMUM"),
22064                      fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
22065                      ang="What is the failure threshold : maximum or minimum."),
22066 #
22067 # 6.2. ==> Pour MEFISTO
22068 #
22069 ### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
22070 #
22071 # 6.2.1. ==> Pilotage de la recherche du point de conception
22072 #
22073      RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
22074                             into=("OUI","NON"),
22075                             fr="Pour trouver le point de conception.",
22076                             ang="To find the design point."),
22077 #
22078      b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
22079 #
22080        EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
22081                         fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
22082                         ang="Precision of stop test for iterative points in standard space."),
22083 #
22084        EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
22085                         fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
22086                         ang="Precision of stop test for limit state surface."),
22087 #
22088        TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
22089                         fr="Paramètre de la méthode de minimisation.",
22090                         ang="Parameter for the minimization method."),
22091 #
22092        OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
22093                         fr="Paramètre de la méthode de minimisation.",
22094                         ang="Parameter for the minimization method."),
22095 #
22096        ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
22097                         fr="Nombre maximum d'itérations.",
22098                         ang="Maximum number of iterations."),
22099      ),
22100 #
22101 # 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
22102 #
22103      METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
22104                          into=("OUI","NON"),
22105                          fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
22106                          ang="Research of failure probability with FORM method."),
22107 #
22108      METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
22109                          into=("OUI","NON"),
22110                          fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
22111                          ang="Research of failure probability with SORM method."),
22112 #
22113      TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
22114                               into=("OUI","NON"),
22115                               fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
22116                               ang="Research of failure probability with ."),
22117 #
22118      b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
22119 #
22120        NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
22121                             fr="Nombre de simulations pour le tirage d'importance.",
22122                             ang="Number of simulation for."),
22123 #
22124      ),
22125 #
22126 # 6.2.3. ==> Création d'une surface de réponse polynomiale
22127 #
22128      POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
22129      HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
22130                               fr="Pas incrémental pour le calcul des gradients.",
22131                               ang="Step for calculation of gradients."),
22132      HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
22133                               fr="Pas incrémental pour le calcul des dérivées secondes.",
22134                               ang="Step for calculation of second derivatives."),
22135 #
22136 # 6.2.4. ==> Recherche d'un plan d'expérience
22137 #
22138      PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
22139                               fr="Construction d'un plan d'expérience.",
22140                               ang="Construction of an experiment plan."),
22141 #
22142      b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
22143 #
22144        ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
22145                             fr="Plan d'expérience : maille du plan de type composite centré.",
22146                             ang="Experiment plane : mesh centered composite."),
22147 #
22148        BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
22149                             fr="Plan d'expérience : maille du plan de type factoriel.",
22150                             ang="Experiment plane : mesh factor."),
22151 #
22152      ),
22153 #
22154 # 6.2.5. ==> Les tests
22155 # 6.2.5.1. ==> Test de la sphere
22156 #
22157      T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
22158                      fr="Test de la sphère.",
22159                      ang="Sphere test."),
22160 #
22161      b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
22162 #
22163        METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
22164                            into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
22165                            fr="Type de méthode.",
22166                            ang="Method."),
22167 #
22168        NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
22169                            fr="Nombre de points de la sphere.",
22170                            ang="Number of points over the sphere.")
22171      ),
22172 #
22173 # 6.2.5.2. ==> Test du maximum fort
22174 #
22175      T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
22176                            fr="Test du maximum fort.",
22177                            ang="Strong maximum test."),
22178 #
22179      b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
22180 #
22181        COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
22182                       fr="Cosinus de l'angle d'exclusion.",
22183                       ang="Cosine of angle of exclusion."),
22184 #
22185        DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
22186                       fr="Fraction d'iso-densité de probabilité de défaillance.",
22187                       ang="Fraction.")
22188 #
22189      ),
22190 #
22191 # 6.2.5.3. ==> Test du hessien
22192 #
22193      T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
22194                       fr="Test du hessien.",
22195                       ang="Hessian test."),
22196 #
22197 # 6.2.6. ==> Les correlations entre les variables
22198 #
22199      MATRICE = SIMP(statut="f",typ="R",max="**",
22200                     fr="Matrice de corrélation entre les variables.",
22201                     ang="Correlation matrix."), 
22202 #
22203 ### en attente de résolution de AL 2004-006 (2/2)   ),
22204 #
22205 #====
22206 # 7. Definition des paramètres
22207 #====
22208 #
22209    VARIABLE = FACT(statut="o",min=1,max="**",
22210 #
22211 # 7.1. ==> Nom de la variable
22212 #
22213        NOM = SIMP(statut="o",typ="TXM",
22214                   fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
22215                   ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
22216 #
22217 # 7.2. ==> Loi de distribution
22218 #
22219        LOI = SIMP(statut="o",typ="TXM",
22220                   into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
22221                   fr="Choix de la loi",
22222                   ang="Law."),
22223 #
22224 # 7.2.1. ==> Loi normale
22225 #
22226        b_normale=BLOC(condition="LOI=='NORMALE'",
22227 #
22228          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
22229                                fr="Valeur moyenne.",
22230                                ang="Mean value."),
22231 #
22232          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
22233                                fr="Ecart type.",
22234                                ang="Standard deviation."),
22235 #
22236        ),
22237 #
22238 # 7.2.2. ==> Loi lognormale
22239 #
22240        b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
22241 #
22242          VALE_MIN       = SIMP(statut="o",typ="R",max=1,
22243                                    fr="Valeur minimale.",
22244                                    ang="Minimal value."),
22245 #
22246          VALE_MOY       = SIMP(statut="f",typ="R",max=1,
22247                                    fr="Valeur moyenne dans l'espace de la loi normale.",
22248                                    ang="Mean value in the space of the normal law."),
22249 #
22250          ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
22251                                    fr="Ecart type dans l'espace de la loi normale.",
22252                                    ang="Standard deviation in the space of the normal law."),
22253 #
22254          VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
22255                                    fr="Valeur moyenne dans l'espace physique.",
22256                                    ang="Mean value in the physical space."),
22257 #
22258          ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
22259                                    fr="Ecart type dans l'espace physique.",
22260                                    ang="Standard deviation in the physical space."),
22261 #
22262          regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
22263                  AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
22264                  EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
22265                  EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
22266                  EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
22267                  EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
22268 #
22269        ),
22270 #
22271 # 7.2.3. ==> Loi uniforme
22272 #
22273        b_uniforme=BLOC(condition="LOI=='UNIFORME'",
22274 #
22275          VALE_MIN = SIMP(statut="o",typ="R",max=1,
22276                              fr="Valeur minimale.",
22277                              ang="Minimal value."),
22278 #
22279          VALE_MAX = SIMP(statut="o",typ="R",max=1,
22280                              fr="Valeur maximale.",
22281                              ang="Maximal value."),
22282 #
22283        ),
22284 #
22285 # 7.2.4. ==> Loi normale tronquée
22286 #
22287        b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
22288 #
22289          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
22290                                fr="Valeur moyenne de la loi normale complète.",
22291                                ang="Mean value for the entire normal law."),
22292 #
22293          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
22294                                fr="Ecart type de la loi normale complète.",
22295                                ang="Standard deviation for the entire normal law."),
22296 #
22297          VALE_MIN   = SIMP(statut="o",typ="R",max=1,
22298                                fr="Valeur minimale.",
22299                                ang="Minimal value."),
22300 #
22301          VALE_MAX   = SIMP(statut="o",typ="R",max=1,
22302                                fr="Valeur maximale.",
22303                                ang="Maximal value."),
22304 #
22305        ),
22306 #
22307 # 7.3. ==> Paramètres de calcul
22308 # 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
22309 #
22310        regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
22311                EXCLUS("POINT_REF","POINT_CONCEPT"),),
22312 #
22313 # 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
22314 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
22315 #
22316        POINT_INI = SIMP(statut="f",typ="R",max=1,
22317                           fr="Point de démarrage de l'algorithme itératif.",
22318                           ang="Initial point for iterative process."),
22319 #
22320 # 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
22321 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
22322 #
22323        POINT_REF = SIMP(statut="f",typ="R",max=1,
22324                           fr="Point de référence de l'algorithme itératif.",
22325                           ang="Reference point for iterative process."),
22326 #
22327 # 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
22328 #
22329        POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
22330                               fr="Point de conception.",
22331                               ang="Design point."),
22332 #
22333 # 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
22334 #
22335        GRADIENT = SIMP(statut="o",typ="TXM",max=1,
22336                            into=("OUI","NON"),
22337                            fr="ASTER calcule directement le gradient.",
22338                        ang="ASTER computes the gradient for this parameter."),
22339
22340        b_gradient=BLOC(condition="GRADIENT=='NON'",
22341          INCREMENT = SIMP(statut="o",typ="R",max=1,
22342                              fr="Incrément dans la direction.",
22343                          ang="Direction increment."),
22344        ),
22345
22346    ),
22347 #
22348 );
22349 #& MODIF COMMANDE  DATE 11/05/2011   AUTEUR SELLENET N.SELLENET 
22350 # -*- coding: iso-8859-1 -*-
22351 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22352 # ======================================================================
22353 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22354 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22355 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22356 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22357 # (AT YOUR OPTION) ANY LATER VERSION.
22358 #
22359 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22360 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22361 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22362 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22363 #
22364 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22365 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22366 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22367 # ======================================================================
22368 # RESPONSABLE GNICOLAS G.NICOLAS
22369
22370 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
22371
22372 MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
22373                      docu="U7.03.02",UIinfo={"groupes":("Maillage",)},
22374                      fr="Donner des informations sur un maillage.",
22375                      ang="To give information about a mesh.",
22376 #
22377 # 1. Le niveau d'information
22378 #
22379   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
22380 #
22381 # 2. Version de HOMARD
22382 #
22383   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_1",
22384                         into=("V10_1", "V10_N", "V10_N_PERSO"),
22385                         fr="Version de HOMARD",
22386                         ang="HOMARD release"),
22387 #
22388 # 3. Langue des messages issus de HOMARD
22389 #
22390   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
22391                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
22392                 fr="Langue des messages issus de HOMARD.",
22393                 ang="Language for HOMARD messages." ),
22394 #
22395 # 4. Le nom du maillage a analyser
22396 #
22397   MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
22398                   fr="Maillage à analyser.",
22399                   ang="Mesh to be checked." ),
22400 #
22401 # 5. Suivi d'une frontiere
22402 #
22403   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
22404                            fr="Maillage de la frontiere à suivre",
22405                            ang="Boundary mesh" ),
22406 #
22407   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
22408                       fr="Information complémentaire sur la frontière",
22409                       ang="Further information about boundary",
22410 #
22411     GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
22412                           fr="Groupes de mailles définissant la frontière",
22413                           ang="Mesh groups which define the boundary" ),
22414 #
22415                     ) ,
22416 #
22417 # 6. Les options ; par defaut, on controle tout, sauf l'interpénétration
22418 # 6.1. Nombre de noeuds et mailles
22419 #
22420   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
22421                         fr="Nombre de noeuds et de mailles du maillage",
22422                         ang="Number of nodes and meshes in the mesh" ),
22423 #
22424 # 6.2. Determination de la qualite des mailles du maillage
22425 #
22426   QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
22427                         fr="Qualité du maillage",
22428                         ang="Quality of the mesh" ),
22429 #
22430 # 6.3. Connexite du maillage
22431 #
22432   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
22433                         fr="Connexité du maillage.",
22434                         ang="Connexity of the mesh." ),
22435 #
22436 # 6.4. Taille des sous-domaines du maillage
22437 #
22438   TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
22439                         fr="Tailles des sous-domaines du maillage.",
22440                         ang="Sizes of mesh sub-domains." ),
22441 #
22442 # 6.5. Controle de la non-interpénétration des mailles
22443 #
22444   INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
22445                         fr="Controle de la non interpénétration des mailles.",
22446                         ang="Overlapping checking." ),
22447 #
22448 # 6.6. Propriétés du maillage de calcul
22449 #
22450   PROP_CALCUL    = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
22451                         fr="Propriétés du maillage de calcul.",
22452                         ang="Properties of the calculation mesh." ),
22453 #
22454 # 7. Unite logique d'un fichier à ajouter a HOMARD.Configuration
22455 #
22456   b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \
22457                                 (VERSION_HOMARD == 'V10_N_PERSO') " ,
22458                                 fr="Fichier supplementaire.",
22459                                 ang="Additional file.",
22460 #
22461   UNITE = SIMP(statut='f',typ='I',
22462                fr="Unite logique a ajouter a HOMARD.Configuration",
22463                ang="Additional file to HOMARD.Configuration" ),
22464 #
22465   ) ,
22466 #
22467 # 8. Gestion des mailles autres que celles compatibles avec HOMARD
22468 #       "REFUSER" : elles sont refusées (defaut)
22469 #       "IGNORER" : elles sont ignorées
22470 #
22471   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
22472                              fr="Acceptation de mailles incompatibles avec HOMARD",
22473                              ang="Incompatible meshes for HOMARD" ),
22474 )  ;
22475
22476 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
22477 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22478 # ======================================================================
22479 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22480 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22481 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22482 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22483 # (AT YOUR OPTION) ANY LATER VERSION.
22484 #
22485 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22486 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22487 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22488 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22489 #
22490 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22491 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22492 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22493 # ======================================================================
22494 # RESPONSABLE DURAND C.DURAND
22495
22496 from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
22497
22498 MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
22499                        reentrant='n',
22500             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
22501             fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
22502              +" par deux points et un intervalle",
22503             regles=(UN_PARMI("RESULTAT","CHAM_GD"),),
22504
22505          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ),
22506          CHAM_GD         =SIMP(statut='f',typ=(cham_gd_sdaster)),
22507
22508          b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
22509                                  regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ),
22510              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22511              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
22512              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22513              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22514              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
22515              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
22516                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
22517              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
22518                  PRECISION       =SIMP(statut='o',typ='R',),),
22519            ),
22520
22521 # extraction des résultats
22522          b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
22523            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU',into=C_NOM_CHAM_INTO(),),
22524          ),
22525          b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
22526            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP',into=("TEMP",
22527                                  "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU",
22528                                  "META_ELNO","META_NOEU",
22529                                  "DURT_ELNO","DURT_NOEU",
22530                                  "HYDR_ELNO","HYDR_NOEU",
22531                                  "DETE_ELNO","DETE_NOEU",
22532                                  "SOUR_ELGA","COMPORTHER",
22533                                  "ERTH_ELEM","ERTH_ELNO","ERTH_NOEU",),),),
22534          b_cham       =BLOC(condition = "CHAM_GD!=None",
22535            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO(),),),
22536
22537          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),
22538          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
22539
22540          VIS_A_VIS       =FACT(statut='f',max='**',
22541                              regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),),
22542            GROUP_MA_1        =SIMP(statut='f',typ=grma),
22543            MAILLE_1          =SIMP(statut='f',typ=ma,max='**'),),
22544
22545          LIGN_COUPE     =FACT(statut='o',max='**',
22546             regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"),
22547                     PRESENT_PRESENT("TRAC_DIR","DIRECTION"),
22548                     EXCLUS("TRAC_DIR","TRAC_NOR"),
22549                     PRESENT_PRESENT("TRAC_DIR","NOM_CMP"),
22550                     PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),),
22551
22552            INTITULE        =SIMP(statut='f',typ='TXM',),
22553            TYPE            =SIMP(statut='o',typ='TXM',max=1,
22554                                  into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"),
22555            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
22556                                 into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
22557            OPERATION       =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",),
22558
22559            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
22560            INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",),),
22561            ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",),),
22562            RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),
22563            TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22564            TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22565            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
22566
22567
22568            b_local        =BLOC(condition = "REPERE=='LOCAL' ",
22569              VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),),
22570
22571            b_utili        =BLOC(condition = "REPERE=='UTILISATEUR'",
22572              ANGL_NAUT       =SIMP(statut='o',typ='R',min=3,max=3),),
22573
22574            b_grno          =BLOC(condition = "TYPE=='GROUP_NO'",
22575              GROUP_NO        =SIMP(statut='o',typ=grno, max=1),),
22576
22577            b_grma          =BLOC(condition = "TYPE=='GROUP_MA'",
22578              GROUP_MA        =SIMP(statut='o',typ=grma, max=1),
22579              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),),
22580
22581            b_segment       =BLOC(condition = "TYPE=='SEGMENT'",
22582              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
22583              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
22584              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),),
22585
22586            b_arc           =BLOC(condition = "TYPE=='ARC'",
22587              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
22588              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
22589              CENTRE          =SIMP(statut='o',typ='R',min=2,max=3),
22590              ANGLE           =SIMP(statut='o',typ='R',max=1),
22591              DNOR            =SIMP(statut='f',typ='R',min=2,max=3),),
22592
22593            b_cylind       =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"),
22594              ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
22595              AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),),
22596
22597            DISTANCE_MAX    =SIMP(statut='f',typ='R',defaut=0.,
22598                 fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé "
22599                 +"est > DISTANCE_MAX, ce noeud sera ignoré."),
22600
22601          ),
22602 )  ;
22603
22604
22605 #& MODIF COMMANDE  DATE 28/03/2011   AUTEUR ASSIRE A.ASSIRE 
22606 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22607 # ======================================================================
22608 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22609 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22610 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22611 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22612 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22613 #                                                                       
22614 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22615 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22616 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22617 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22618 #                                                                       
22619 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22620 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22621 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22622 # ======================================================================
22623 # RESPONSABLE ASSIRE A.ASSIRE
22624
22625 from Macro.macr_recal_ops import macr_recal_ops
22626
22627 def macr_recal_prod(self,**args ):
22628   return listr8_sdaster
22629
22630 MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
22631             UIinfo={"groupes":("Résolution","Résultats et champs",)},
22632                       sd_prod=macr_recal_prod,
22633                       fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
22634                         +" ou sur d'autres résultats de calculs",
22635
22636          UNITE_ESCL      =SIMP(statut='o',typ='I'),
22637          RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
22638          POIDS           =SIMP(statut='f',typ=assd,max='**'),
22639          RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
22640          LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
22641
22642          UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
22643          PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
22644
22645          GRAPHIQUE       =FACT(statut='f',
22646              FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT"),),
22647              AFFICHAGE       =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE"),),
22648              b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", fr="Mots-clés propres à XMGRACE",
22649                  PILOTE          =SIMP(statut='f',typ='TXM',defaut='', 
22650                                        into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
22651                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
22652                  UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
22653                             fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
22654              ),
22655          ),
22656
22657
22658          # Methodes d'optimisation
22659          # -----------------------
22660          METHODE         =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG", "FMIN", "FMINBFGS", "FMINNCG",
22661                                                                              "GENETIQUE","HYBRIDE")),
22662
22663          b_genetique_options=BLOC(condition = "METHODE == 'GENETIQUE' or METHODE == 'HYBRIDE'" ,
22664              NB_PARENTS       =SIMP(statut='f',typ='I',defaut=10),
22665              NB_FILS          =SIMP(statut='f',typ='I',defaut=5),
22666              ECART_TYPE       =SIMP(statut='f',typ='R',defaut=1.),
22667              GRAINE           =SIMP(statut='f',typ='I'),
22668              ITER_ALGO_GENE   =SIMP(statut='f',typ='I',defaut=10),
22669              RESI_ALGO_GENE   =SIMP(statut='f',typ='R',defaut=1.E-3),
22670          ),
22671          
22672
22673          # Criteres d'arret globaux
22674          # -------------------------
22675          ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10,    fr="Nombre maximum d'iterations d'optimisation"),
22676          ITER_FONC_MAXI  =SIMP(statut='f',typ='I',defaut=1000,  fr="Nombre maximum d'evaluations de la focntionnelle"),
22677          RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3, fr="Critere d'arret sur la valeur du residu"),
22678          TOLE_PARA       =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur des parametres"),
22679          TOLE_FONC       =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur de la fonctionnelle"),
22680
22681
22682          # Calculs des gradients
22683          # ---------------------
22684          b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" ,
22685              GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
22686          ),
22687
22688          b_gradient_levenberg =BLOC(condition = "METHODE == 'LEVENBERG'" ,
22689              GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NORMAL', into=( "NORMAL", "ADIMENSIONNE" )),
22690          ),
22691
22692
22693          # Mode d'evaluation de l'esclave
22694          # ------------------------------
22695          CALCUL_ESCLAVE       =FACT(statut='d',
22696             LANCEMENT         =SIMP(statut='f', typ='TXM', defaut='INCLUSION',into=("DISTRIBUTION","INCLUSION"),),
22697
22698             b_eval_distrib =BLOC(condition = "LANCEMENT == 'DISTRIBUTION'",
22699                 UNITE_SUIVI   =SIMP(statut='f', typ='I',val_min=10,val_max=99,defaut=29, 
22700                                   fr="Affichage de l'output et/ou error des jobs esclaves dans ce fichier"),
22701                 MODE          =SIMP(statut='f', typ='TXM',      into=("INTERACTIF","BATCH"),),
22702                 MEMOIRE       =SIMP(statut='f', typ='I',        fr="Memoire demandee pour les calculs esclaves (Mo)"),
22703                 TEMPS         =SIMP(statut='f', typ='I',        fr="Temps demandee pour les calculs esclaves (secondes)"),
22704                 CLASSE        =SIMP(statut='f', typ='TXM',      fr="Classe demandee pour les calculs en batch"),
22705                 NMAX_SIMULT   =SIMP(statut='f', typ='I',
22706                                fr="Nombre de calculs esclaves lances en paralle en mode distribution (non precise = automatique)"),
22707             ),
22708          ),
22709
22710          DYNAMIQUE       =FACT(statut='f',
22711                MODE_EXP           =SIMP(statut='o',typ='TXM'),
22712                MODE_CALC          =SIMP(statut='o',typ='TXM'),
22713                APPARIEMENT_MANUEL =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),           
22714                                ),
22715
22716          INFO            =SIMP(statut='f',typ='I',defaut=1, into=( 1, 2 ) ),
22717 );
22718 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
22719 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22720 # ======================================================================
22721 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
22722 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22723 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22724 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22725 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22726 #                                                                       
22727 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22728 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22729 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22730 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22731 #                                                                       
22732 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22733 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22734 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22735 # ======================================================================
22736 # RESPONSABLE VOLDOIRE F.VOLDOIRE
22737
22738 from Macro.macr_spectre_ops import macr_spectre_ops
22739
22740 MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",op=macr_spectre_ops,sd_prod=table_sdaster,
22741                        reentrant='n',
22742                        UIinfo={"groupes":("Post-traitements","Outils-métier",)},
22743                        fr="Calcul de spectre, post-traitement de séisme",
22744          MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster,),
22745          PLANCHER      =FACT(statut='o',max='**',
22746             regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),),
22747             NOM           =SIMP(statut='o',typ='TXM',),
22748             GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22749             NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'), ),
22750          NOM_CHAM      =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')),
22751          CALCUL        =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'),
22752          b_acce  =BLOC( condition = "NOM_CHAM=='ACCE'",
22753            regles=(UN_PARMI('LIST_FREQ','FREQ'),),
22754            AMOR_SPEC     =SIMP(statut='o',typ='R',max='**'),
22755            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster ),
22756            LIST_FREQ     =SIMP(statut='f',typ=listr8_sdaster ),
22757            FREQ          =SIMP(statut='f',typ='R',max='**'),
22758            NORME         =SIMP(statut='o',typ='R'),  
22759            RESU          =FACT(statut='o',max='**',
22760                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
22761                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
22762                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
22763                 b_calc  =BLOC( condition = "CALCUL=='RELATIF'",
22764                    ACCE_X        =SIMP(statut='o',typ=fonction_sdaster),
22765                    ACCE_Y        =SIMP(statut='o',typ=fonction_sdaster),
22766                    ACCE_Z        =SIMP(statut='o',typ=fonction_sdaster),), ),
22767            IMPRESSION    =FACT(statut='f',
22768                 TRI           =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),),
22769                 FORMAT        =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),),
22770                 UNITE         =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
22771                                     fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
22772                 b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
22773                    PILOTE        =SIMP(statut='f',typ='TXM',defaut='',
22774                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),),
22775                 TOUT          =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),),
22776                               ),
22777          ),
22778          b_depl  =BLOC( condition = "NOM_CHAM=='DEPL'",
22779            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),  
22780            RESU          =FACT(statut='o',max=3,
22781                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
22782                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
22783                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
22784                 b_calc  =BLOC( condition = "CALCUL=='ABSOLU'",
22785                    DEPL_X        =SIMP(statut='o',typ=fonction_sdaster),
22786                    DEPL_Y        =SIMP(statut='o',typ=fonction_sdaster),
22787                    DEPL_Z        =SIMP(statut='o',typ=fonction_sdaster),),),
22788          ),
22789 )
22790 #& MODIF COMMANDE  DATE 02/02/2011   AUTEUR PELLET J.PELLET 
22791 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22792 # ======================================================================
22793 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22794 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22795 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22796 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22797 # (AT YOUR OPTION) ANY LATER VERSION.
22798 #
22799 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22800 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22801 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22802 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22803 #
22804 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22805 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22806 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22807 # ======================================================================
22808 # RESPONSABLE DESROCHES X.DESROCHES
22809
22810 from Macro.macro_elas_mult_ops import macro_elas_mult_ops
22811
22812 def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
22813   if isinstance(NUME_DDL,CO) :
22814     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
22815   else:
22816     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
22817   if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
22818   if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
22819   raise AsException("type de concept resultat non prevu")
22820
22821 MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f',
22822             UIinfo={"groupes":("Résolution",)},
22823          fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier",
22824          regles=(UN_PARMI('CHAR_MECA_GLOBAL','LIAISON_DISCRET', ),),
22825          MODELE          =SIMP(statut='o',typ=modele_sdaster),
22826          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
22827          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
22828          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
22829          CHAR_MECA_GLOBAL=SIMP(statut='f',typ=(char_meca),validators=NoRepeat(),max='**'),
22830          LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
22831          CAS_CHARGE      =FACT(statut='o',max='**',
22832            regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
22833                    UN_PARMI('CHAR_MECA','VECT_ASSE'),),
22834            NOM_CAS         =SIMP(statut='f',typ='TXM' ),
22835            MODE_FOURIER    =SIMP(statut='f',typ='I' ),
22836            TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
22837            CHAR_MECA       =SIMP(statut='f',typ=(char_meca),validators=NoRepeat(),max='**'),
22838            OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
22839                                  into=("EFGE_ELNO","EPOT_ELEM","SIGM_ELNO","SIEF_ELGA",
22840                                        "SICA_ELNO","EFCA_ELNO","DEGE_ELNO","EPSI_ELNO",
22841                                        "EPSI_ELGA","EPSG_ELNO","EPSG_ELGA","EPSP_ELNO","EPSP_ELGA",
22842                                        "ECIN_ELEM","FLUX_ELGA","FLUX_ELNO","SOUR_ELGA",
22843                                        "PRAC_ELNO","INTE_ELNO",
22844                                        "SIZ1_ELGA","ERZ1_ELEM","SIZ2_ELGA",
22845                                        "ERZ2_ELEM","VNOR_ELEM_DEPL","ERME_ELNO",
22846                                        "ERME_ELEM","SIEQ_ELNO","SIEQ_ELGA","EPEQ_ELNO",
22847                                        "QIRE_ELEM","QIRE_ELNO","QIZ1_ELEM","QIZ2_ELEM",
22848                                        "EPEQ_ELGA","FORC_NODA","REAC_NODA","EPSI_NOEU","SIGM_NOEU",
22849                                        "EFGE_NOEU","SIEQ_NOEU","EPEQ_NOEU","FLUX_NOEU") ),
22850            NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),
22851            NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
22852            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
22853            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
22854          ),
22855          SOLVEUR         =FACT(statut='d',
22856            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
22857            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",
22858                                     fr="Paramètres de la méthode multi frontale",
22859              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
22860            ),
22861            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
22862              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
22863             ),
22864            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
22865                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
22866              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
22867              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22868            ),
22869          ),
22870          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
22871          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22872 )  ;
22873 #& MODIF COMMANDE  DATE 13/01/2011   AUTEUR PELLET J.PELLET 
22874 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22875 # ======================================================================
22876 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22877 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22878 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22879 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22880 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22881 #                                                                       
22882 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22883 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22884 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22885 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22886 #                                                                       
22887 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22888 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22889 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22890 # ======================================================================
22891 # RESPONSABLE BODEL C.BODEL
22892
22893 from Macro.macro_expans_ops import macro_expans_ops
22894
22895 def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args):
22896     RESU_EXP = MODELE_MESURE['MESURE']
22897     self.type_sdprod(RESU_NX, mode_meca)
22898     for res in (RESU_EX, RESU_ET, RESU_RD):
22899         if isinstance(res, CO):
22900             if AsType(RESU_EXP) == mode_meca:
22901                 self.type_sdprod(res, mode_meca)
22902             else:
22903                 self.type_sdprod(res, dyna_harmo)
22904         else:
22905             self.type_sdprod(res,res.__class__)
22906     return None
22907
22908 MACRO_EXPANS=MACRO(nom="MACRO_EXPANS",
22909                    op=macro_expans_ops,
22910                    sd_prod=macro_expans_prod,
22911                    reentrant='n',
22912                    UIinfo={"groupes":("Outils-métier","Dynamique",)},
22913                    fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique",
22914                         MODELE_CALCUL   = FACT(statut='o',
22915                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
22916                            BASE            = SIMP(statut='o',typ=(mode_meca,) ), 
22917                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
22918                            NUME_ORDRE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
22919
22920                                              ),
22921                         MODELE_MESURE   = FACT(statut='o',
22922                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
22923                            MESURE          = SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ),
22924                            NOM_CHAM        = SIMP(statut='f',typ='TXM',defaut="DEPL",
22925                                                   into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU",) ),
22926                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
22927                            NUME_ORDRE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
22928
22929                                              ),
22930                         NUME_DDL       = SIMP(statut='f',typ=(nume_ddl_sdaster)),
22931                         RESU_NX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
22932                         RESU_EX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
22933                         RESU_ET        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
22934                         RESU_RD        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
22935                         RESOLUTION     = FACT(statut='f',
22936                            METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
22937                            b_svd   =BLOC(condition="METHODE=='SVD'",
22938                                          EPS=SIMP(statut='f',typ='R',defaut=0. ),
22939                                         ),
22940                            REGUL   =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
22941                            b_regul =BLOC(condition="REGUL!='NON'",
22942                                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
22943                                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),
22944                                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
22945                                         ),
22946                                              ),
22947                    )
22948 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
22949 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22950 # ======================================================================
22951 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22952 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22953 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22954 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22955 # (AT YOUR OPTION) ANY LATER VERSION.
22956 #
22957 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22958 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22959 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22960 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22961 #
22962 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22963 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22964 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22965 # ======================================================================
22966 # RESPONSABLE GREFFET N.GREFFET
22967
22968 from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops
22969
22970 def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
22971   self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
22972   self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
22973   self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r)
22974   if FORC_AJOU != None:
22975     for m in FORC_AJOU:
22976       self.type_sdprod(m['VECTEUR'],vect_asse_gene)
22977
22978   return None
22979
22980 MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod,
22981             UIinfo={"groupes":("Résolution","Matrices et vecteurs",)},
22982             fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement"
22983               +" ou de rigidité ajoutés",
22984       regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
22985               AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
22986               EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
22987               EXCLUS('MONO_APPUI','MODE_STAT',),
22988              ),
22989          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
22990          GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
22991          GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
22992          MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
22993          FLUIDE          =FACT(statut='o',max='**',
22994            RHO             =SIMP(statut='o',typ='R'),
22995            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
22996            GROUP_MA        =SIMP(statut='f',typ=grma),
22997            MAILLE          =SIMP(statut='f',typ=ma),
22998          ),
22999          DDL_IMPO        =FACT(statut='o',max='**',
23000            regles=(UN_PARMI('NOEUD','GROUP_NO'),
23001                    UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
23002            NOEUD           =SIMP(statut='f',typ=no),
23003            GROUP_NO        =SIMP(statut='f',typ=grno),
23004            PRES_FLUIDE     =SIMP(statut='f',typ='R'),
23005            PRES_SORTIE     =SIMP(statut='f',typ='R'),
23006          ),
23007          ECOULEMENT      =FACT(statut='f',
23008            GROUP_MA_1      =SIMP(statut='o',typ=grma),
23009            GROUP_MA_2      =SIMP(statut='o',typ=grma),
23010            VNOR_1          =SIMP(statut='o',typ='R'),
23011            VNOR_2          =SIMP(statut='f',typ='R'),
23012            POTENTIEL       =SIMP(statut='f',typ=evol_ther),
23013          ),
23014          MODE_MECA       =SIMP(statut='f',typ=mode_meca),
23015          DEPL_IMPO       =SIMP(statut='f',typ=cham_no_sdaster),
23016          MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
23017          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
23018          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),
23019          MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
23020          MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
23021          MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
23022          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
23023          MODE_STAT       =SIMP(statut='f',typ=mode_meca,),
23024          FORC_AJOU       =FACT(statut='f',max='**',
23025            DIRECTION     =SIMP(statut='o',typ='R',max=3),
23026            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23027            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23028            VECTEUR       =SIMP(statut='o',typ=CO),
23029          ),
23030          SOLVEUR         =FACT(statut='d',
23031            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
23032            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23033              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23034            ),
23035            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23036              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
23037            ),
23038            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
23039                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23040              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
23041              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23042            ),
23043            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
23044              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
23045              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
23046                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
23047                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23048                ),
23049              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
23050                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
23051                ),
23052              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23053              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
23054            ),
23055            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23056              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23057              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23058              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23059              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
23060              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23061              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23062              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.0E-6,),
23063              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23064              ),
23065
23066            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
23067              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
23068              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
23069              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
23070                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
23071                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
23072                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23073              ),
23074              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
23075                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
23076                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
23077              ),
23078              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
23079                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
23080                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
23081              ),
23082              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23083              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
23084            ),
23085          ),
23086          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
23087          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23088          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23089 )
23090 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
23091 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23092 # ======================================================================
23093 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23094 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23095 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23096 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23097 # (AT YOUR OPTION) ANY LATER VERSION.
23098 #
23099 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23100 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23101 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23102 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23103 #
23104 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23105 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23106 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23107 # ======================================================================
23108 # RESPONSABLE PELLET J.PELLET
23109
23110 from Macro.macro_matr_asse_ops import macro_matr_asse_ops
23111
23112 def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
23113   if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
23114   if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
23115   if isinstance(NUME_DDL,CO) :
23116     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
23117   else:
23118     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
23119   for m in MATR_ASSE:
23120     opti=m['OPTION']
23121
23122     if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
23123        "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
23124        "AMOR_MECA","IMPE_MECA",
23125        "ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : t=matr_asse_depl_r
23126
23127     if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
23128
23129     if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
23130        "RIGI_THER_CONV_D",) : t=matr_asse_temp_r
23131
23132     if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
23133
23134     self.type_sdprod(m['MATRICE'],t)
23135   return None
23136
23137 MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
23138             UIinfo={"groupes":("Matrices et vecteurs",)},
23139                       sd_prod=macro_matr_asse_prod,
23140                       fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ",
23141          MODELE          =SIMP(statut='o',typ=modele_sdaster),
23142          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
23143          INST            =SIMP(statut='f',typ='R',defaut=0.),
23144          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23145          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
23146          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
23147          NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
23148          SOLVEUR         =FACT(statut='d',
23149            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
23150          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
23151            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
23152          ),
23153          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
23154            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
23155          ),
23156          b_mumps         =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23157            RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23158            OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23159            LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23160          ),
23161          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="Paramètres associés à la méthode gradient conjugué",
23162            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
23163          ),
23164          b_petsc         =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC",
23165            RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23166          ),
23167          ),
23168
23169          MATR_ASSE       =FACT(statut='o',max='**',
23170              MATRICE         =SIMP(statut='o',typ=CO),
23171              OPTION          =SIMP(statut='o',typ='TXM',
23172                                    into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
23173                                          "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
23174                                          "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
23175                                          "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR","MECA_GYRO",
23176                                          "RIGI_THER","MASS_THER",
23177                                          "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",)
23178                                    ),
23179
23180              b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
23181                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
23182              ),
23183
23184              b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
23185                SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
23186                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
23187              ),
23188
23189              b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'",
23190                THETA           =SIMP(statut='o',typ=theta_geom),
23191                PROPAGATION     =SIMP(statut='f',typ='R'),
23192              ),
23193
23194              b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
23195                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
23196              ),
23197
23198          ), # fin MATR_ASSE
23199
23200          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
23201          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
23202 )  ;
23203 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
23204 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23205 # ======================================================================
23206 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23207 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23208 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23209 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23210 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23211 #
23212 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23213 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23214 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23215 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23216 #
23217 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23218 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23219 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23220 # ======================================================================
23221 # RESPONSABLE DEVESA G.DEVESA
23222
23223 from Macro.macro_miss_3d_ops import macro_miss_3d_ops
23224
23225 MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,
23226             fr="Préparation des données puis exécution du logiciel MISS3D",
23227             UIinfo={"groupes":("Résolution","Outils-métier",)},
23228          OPTION          =FACT(statut='o',
23229            regles=(UN_PARMI('TOUT','MODULE'),),
23230            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
23231            MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
23232          ),
23233          PROJET          =SIMP(statut='o',typ='TXM'),  
23234          REPERTOIRE      =SIMP(statut='f',typ='TXM'),
23235          VERSION         =SIMP(statut='f',typ='TXM',into=("V1_3","V1_4","V1_5",),defaut="V1_4"),
23236          UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),  
23237          UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),  
23238          UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
23239          TABLE_SOL       =SIMP(statut='f',typ=table_sdaster, fr="Caractéristiques du sol"),  
23240          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
23241          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0),
23242          PARAMETRE       =FACT(statut='f',         
23243            regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'),
23244                    PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'),
23245                    PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'),
23246                    PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'),
23247                    PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),),
23248            FREQ_MIN        =SIMP(statut='f',typ='R'), 
23249            FREQ_MAX        =SIMP(statut='f',typ='R'),
23250            FREQ_PAS        =SIMP(statut='f',typ='R'),
23251            Z0              =SIMP(statut='f',typ='R'), 
23252            SURF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
23253            RFIC            =SIMP(statut='f',typ='R'),
23254            FICH_RESU_IMPE  =SIMP(statut='f',typ='TXM'),
23255            FICH_RESU_FORC  =SIMP(statut='f',typ='TXM'),
23256            TYPE            =SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII",),defaut="ASCII"),
23257            DREF            =SIMP(statut='f',typ='R'),
23258            ALGO            =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")),
23259            OFFSET_MAX      =SIMP(statut='f',typ='R'),
23260            OFFSET_NB       =SIMP(statut='f',typ='I'),
23261            SPEC_MAX        =SIMP(statut='f',typ='R'),
23262            SPEC_NB         =SIMP(statut='f',typ='I'),
23263            ISSF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
23264            FICH_POST_TRAI  =SIMP(statut='f',typ='TXM'),
23265            CONTR_NB        =SIMP(statut='f',typ='I'),
23266            CONTR_LISTE     =SIMP(statut='f',typ='R',max='**'),
23267            LFREQ_NB        =SIMP(statut='f',typ='I'),
23268            LFREQ_LISTE     =SIMP(statut='f',typ='R',max='**'),
23269            DIRE_ONDE       =SIMP(statut='f',typ='R',max='**'),
23270          ),
23271 )  ;
23272 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
23273 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23274 # ======================================================================
23275 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23276 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23277 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23278 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23279 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23280 #
23281 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23282 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23283 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23284 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23285 #
23286 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23287 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23288 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23289 # ======================================================================
23290 # RESPONSABLE NISTOR I.NISTOR
23291
23292 from Macro.macro_mode_meca_ops import macro_mode_meca_ops
23293
23294 MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca,
23295                      reentrant='n',fr="Lancer une succession de calculs de modes propres réels",
23296             UIinfo={"groupes":("Résolution","Dynamique",)},
23297          MATR_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
23298          MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
23299          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
23300 #  ce mot cle ne devrait il pas etre dans calc_freq  
23301          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
23302                                into=("TRI_DIAG","JACOBI","SORENSEN",) ),
23303          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
23304            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
23305            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23306            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
23307            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
23308          ),
23309          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
23310            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
23311            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
23312            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
23313            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
23314          ),
23315          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
23316            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
23317            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
23318            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
23319          ),
23320          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
23321                                into=("MODE_RIGIDE","SANS") ),
23322          CALC_FREQ       =FACT(statut='d',min=0,
23323            regles=(UN_PARMI('FREQ','FREQ_MAX'),
23324                    PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
23325                    PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),
23326                    EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
23327            FREQ            =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**', ),  
23328            FREQ_MIN        =SIMP(statut='f',typ='R' ),  
23329            FREQ_MAX        =SIMP(statut='f',typ='R' ),  
23330            NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
23331            DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),  
23332            COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
23333            NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
23334            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
23335            SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
23336            STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
23337          ),
23338          VERI_MODE       =FACT(statut='d',min=0,
23339            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23340            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
23341            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
23342            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23343          ),
23344          NORM_MODE       =FACT(statut='o',max='**',
23345            NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
23346                                  into=("MASS_GENE","RIGI_GENE","EUCL",           
23347                                        "EUCL_TRAN","TRAN","TRAN_ROTA") ),
23348            INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
23349          ),
23350          FILTRE_MODE     =FACT(statut='f',
23351            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
23352                                  into=("MASS_EFFE_UN","MASS_GENE") ),
23353            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
23354          ),
23355          IMPRESSION      =FACT(statut='d',
23356            TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23357            CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23358            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
23359                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
23360          ),
23361 )  ;
23362 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
23363 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23364 # ======================================================================
23365 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23366 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23367 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23368 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23369 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23370 #
23371 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23372 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23373 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23374 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23375 #
23376 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23377 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23378 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23379 # ======================================================================
23380 # RESPONSABLE BOYERE E.BOYERE
23381
23382 from Macro.macro_proj_base_ops import macro_proj_base_ops
23383
23384 def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
23385   if MATR_ASSE_GENE != None:
23386     for m in MATR_ASSE_GENE:
23387       self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
23388   if VECT_ASSE_GENE != None:
23389     for v in VECT_ASSE_GENE:
23390       self.type_sdprod(v['VECTEUR'],vect_asse_gene)
23391   return None
23392
23393 MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
23394          regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')),
23395             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
23396                       sd_prod=macro_proj_base_prod,
23397          fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)",
23398          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene) ),
23399          NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
23400          PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
23401          MATR_ASSE_GENE  =FACT(statut='f',max='**',
23402            MATRICE         =SIMP(statut='o',typ=CO,),
23403            regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),),
23404            MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
23405            MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
23406          ),
23407          VECT_ASSE_GENE  =FACT(statut='f',max='**',
23408            VECTEUR         =SIMP(statut='o',typ=CO,),
23409            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),),
23410            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
23411            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
23412            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
23413          ),
23414          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
23415 )  ;
23416 #& MODIF COMMANDE  DATE 01/03/2011   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23417 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23418 # ======================================================================
23419 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23420 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23421 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23422 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23423 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23424 #
23425 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23426 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23427 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23428 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23429 #
23430 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23431 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23432 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23433 # ======================================================================
23434 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
23435 #
23436 MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
23437               UIinfo={"groupes":("Gestion du travail",)},
23438               fr="Compilation des catalogues d'éléments et couverture des calculs élémentaires",
23439               regles=(UN_PARMI('ELEMENT','TYPE_ELEM', ),),
23440
23441               ELEMENT     =FACT(statut='f',),
23442
23443               UNITE       =SIMP(statut='f',typ='I',defaut=8),       
23444               TYPE_ELEM   =FACT(statut='f',),
23445 );
23446 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
23447 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23448 # ======================================================================
23449 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23450 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23451 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23452 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23453 # (AT YOUR OPTION) ANY LATER VERSION.
23454 #
23455 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23456 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23457 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23458 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23459 #
23460 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23461 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23462 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23463 # ======================================================================
23464 # RESPONSABLE PELLET J.PELLET
23465 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
23466                    fr="Résoudre un problème de mécanique statique linéaire",reentrant='f',
23467             UIinfo={"groupes":("Résolution","Mécanique",)},
23468          regles=(EXCLUS("INST","LIST_INST"),
23469                  AU_MOINS_UN('CHAM_MATER','CARA_ELEM',),
23470                  CONCEPT_SENSIBLE('ENSEMBLE'),),
23471          MODELE          =SIMP(statut='o',typ=modele_sdaster),
23472          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,
23473          fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
23474          ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
23475          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
23476          fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
23477          ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
23478          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
23479          EXCIT           =FACT(statut='o',max='**',
23480            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
23481            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23482            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
23483          ),
23484          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
23485          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
23486          INST_FIN        =SIMP(statut='f',typ='R'),
23487          OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","SANS"),defaut="SIEF_ELGA",max=1,
23488              fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.",
23489                           ),
23490          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
23491                                fr="Liste des paramètres de sensibilité.",
23492                                ang="List of sensitivity parameters"),
23493
23494          SOLVEUR         =FACT(statut='d',
23495            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS","PETSC")),
23496
23497            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
23498              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
23499              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23500              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
23501              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23502              REAC_RESI       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23503              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
23504              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23505              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23506              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
23507              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
23508              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23509              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
23510              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
23511              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
23512              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23513              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23514            ),
23515
23516            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23517              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23518            ),
23519
23520            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23521              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
23522            ),
23523
23524            b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' or METHODE=='FETI' ",
23525                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23526              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
23527              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23528            ),
23529
23530            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
23531              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP","SANS",),defaut="LDLT_INC" ),
23532              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
23533                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
23534                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23535                ),
23536              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
23537                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
23538                ),
23539              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23540              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
23541            ),
23542
23543            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23544              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23545              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23546              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23547              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23548              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23549              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23550              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.0E-6,),
23551              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23552              MATR_DISTRIBUEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23553              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23554              ),
23555
23556            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
23557              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
23558              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
23559              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
23560                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
23561                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
23562                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23563              ),
23564              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
23565                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
23566                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
23567              ),
23568              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
23569                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
23570                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
23571              ),
23572              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23573              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
23574            ),
23575          ),
23576          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23577 )  ;
23578 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
23579 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23580 # ======================================================================
23581 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23582 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23583 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23584 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23585 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23586 #
23587 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23588 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23589 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23590 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23591 #
23592 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23593 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23594 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23595 # ======================================================================
23596 # RESPONSABLE BODEL C.BODEL
23597 MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
23598                     fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir"
23599                         +" d'une base de modes propres réels",
23600                     reentrant='n',
23601             UIinfo={"groupes":("Résolution","Dynamique",)},
23602          BASE_MODALE     =SIMP(statut='o',typ=mode_meca ),
23603          NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
23604          NB_SECTEUR      =SIMP(statut='o',typ='I' ),
23605          LIAISON         =FACT(statut='o',
23606            DROITE          =SIMP(statut='o',typ='TXM' ),
23607            GAUCHE          =SIMP(statut='o',typ='TXM' ),
23608            AXE             =SIMP(statut='f',typ='TXM' ),
23609          ),
23610          VERI_CYCL       =FACT(statut='f',
23611            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23612            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
23613            DIST_REFE       =SIMP(statut='f',typ='R' ),
23614          ),
23615          CALCUL          =FACT(statut='o',
23616            regles=(UN_PARMI('TOUT_DIAM','NB_DIAM'),),
23617            TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23618            NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
23619            OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
23620                                 ,into=("PLUS_PETITE","CENTRE","BANDE") ),
23621            b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
23622              FREQ            =SIMP(statut='o',typ='R',),
23623            ),
23624            b_bande       =BLOC(condition = "OPTION == 'BANDE'",
23625              FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
23626            ),
23627 #  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
23628            NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
23629            PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
23630            PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23631            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
23632          ),
23633          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
23634 )  ;
23635 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
23636 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23637 # ======================================================================
23638 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23639 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23640 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23641 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23642 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23643 #
23644 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23645 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23646 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23647 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23648 #
23649 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23650 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23651 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23652 # ======================================================================
23653 # RESPONSABLE O.BOITEAU
23654
23655 def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
23656   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
23657   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
23658   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
23659   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
23660   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
23661   raise AsException("type de concept resultat non prevu")
23662
23663 MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
23664                     ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
23665                      reentrant='n',
23666             UIinfo={"groupes":("Résolution","Dynamique",)},
23667          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
23668          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
23669          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
23670          MATR_C          =SIMP(statut='f',typ=matr_asse_depl_r ),
23671          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",   
23672                                into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
23673          b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
23674            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
23675            
23676              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
23677                                    fr="Choix de l option pour estimer les valeurs propres"  ),
23678              FREQ            =SIMP(statut='o',typ='R',max='**'),
23679              AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
23680              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
23681              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
23682              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
23683              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
23684              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
23685
23686              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23687              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
23688              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
23689              ),
23690              SOLVEUR         =FACT(statut='d',
23691                METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS")),
23692                b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23693                  RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23694                ),
23695                b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23696                  RENUM           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","SANS") ),
23697                ),
23698                b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
23699                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23700                  NPREC           =SIMP(statut='f',typ='I',defaut= 8,val_min=0),
23701                ),
23702                b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23703                  TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23704                  PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23705                  POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23706                  RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23707                  ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23708                  PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23709                  RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23710                  OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23711                  LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23712                ),
23713              ),
23714
23715            ),
23716          b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
23717            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
23718            
23719              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
23720                                  fr="Choix de l option pour estimer les valeurs propres"  ),
23721              CHAR_CRIT       =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
23722              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
23723              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
23724              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
23725              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
23726              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
23727            
23728              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23729              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
23730              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
23731              ),
23732              SOLVEUR         =FACT(statut='d',
23733                METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS")),
23734                b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23735                  RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23736                ),
23737                b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23738                  RENUM           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","SANS") ),
23739                ),
23740                b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
23741                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23742                  NPREC           =SIMP(statut='f',typ='I',defaut= 8,val_min=0),
23743                ),
23744                b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23745                  TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23746                  PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23747                  POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23748                  RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23749                  ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23750                  PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23751                  RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23752                  OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23753                  LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23754                ),
23755              ),
23756              
23757            ),
23758          CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
23759            OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
23760            PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ),
23761            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
23762          ),
23763          VERI_MODE       =FACT(statut='d',min=0,
23764            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23765            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
23766                                  fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
23767          ),
23768          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
23769                                fr="Liste des param\350tres de sensibilit\351.",
23770                                ang="List of sensitivity parameters",
23771          ),
23772          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
23773              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
23774              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
23775              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
23776          ),
23777          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
23778          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
23779 )  ;
23780 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
23781 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23782 # ======================================================================
23783 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23784 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23785 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23786 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23787 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23788 #
23789 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23790 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23791 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23792 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23793 #
23794 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23795 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23796 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23797 # ======================================================================
23798 # RESPONSABLE O.BOITEAU
23799
23800 def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
23801   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
23802   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
23803   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
23804   if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c
23805   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
23806   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
23807   if AsType(MATR_A) == matr_asse_gene_c : return mode_gene
23808
23809   raise AsException("type de concept resultat non prevu")
23810
23811 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
23812                       fr="Calcul des modes propres par itérations simultanées ; valeurs propres et"
23813                          +" modes propres réels ou complexes",
23814                       reentrant='n',
23815             UIinfo={"groupes":("Résolution","Dynamique",)},
23816          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
23817          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,
23818                                matr_asse_gene_r,matr_asse_gene_c,matr_asse_pres_r ) ),
23819          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
23820          MATR_C          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
23821          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
23822                                into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
23823          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
23824            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
23825            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23826            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
23827            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
23828          ),
23829          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
23830            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
23831            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
23832            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
23833            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
23834          ),
23835          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
23836            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
23837            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
23838            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
23839          ),
23840          b_qz =BLOC(condition = "METHODE == 'QZ'",
23841            TYPE_QZ      =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),  
23842          ),
23843          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
23844                                into=("MODE_FLAMB","DYNAMIQUE"),
23845                                fr="Type d analyse" ),
23846          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
23847                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
23848
23849          b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
23850            CALC_FREQ       =FACT(statut='d',min=0,
23851              OPTION       =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
23852                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
23853              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
23854                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
23855              ),
23856              b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
23857                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
23858                CHAR_CRIT       =SIMP(statut='o',typ='R',
23859                                      fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
23860                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
23861              ),
23862              b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
23863                                  fr="Recherche des valeurs propres dans une bande donnée",
23864                CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
23865                                      fr="Valeur des deux charges critiques délimitant la bande de recherche"),
23866              ),           
23867              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
23868                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
23869              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
23870              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
23871              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
23872              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23873              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
23874              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
23875              ),
23876              SOLVEUR         =FACT(statut='d',
23877                METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS")),
23878                b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23879                  RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23880                ),
23881                b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23882                  RENUM           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","SANS") ),
23883                ),
23884                b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
23885                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23886                  NPREC           =SIMP(statut='f',typ='I',defaut= 8,val_min=0),
23887                ),
23888                b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23889                  TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23890                  PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23891                  POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23892                  RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23893                  ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23894                  PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23895                  RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23896                  OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23897                  LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23898                ),
23899              ),
23900          ),
23901
23902          b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
23903            CALC_FREQ       =FACT(statut='d',min=0,
23904              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
23905                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
23906              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
23907                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
23908              ),
23909              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
23910                                   fr="Recherche des valeurs propres les plus proches d une valeur donnée",
23911                FREQ            =SIMP(statut='o',typ='R',
23912                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
23913                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
23914                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
23915              ),
23916              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
23917                                    fr="Recherche des valeurs propres dans une bande donnée",
23918                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
23919                                      fr="Valeur des deux fréquences délimitant la bande de recherche"),
23920              ),           
23921              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
23922                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
23923              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
23924              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
23925              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
23926              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
23927              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
23928              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
23929              ),
23930              SOLVEUR         =FACT(statut='d',
23931                METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS")),
23932                b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23933                  RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23934                ),
23935                b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23936                  RENUM           =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","SANS") ),
23937                ),
23938                b_direct_hybride =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
23939                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23940                  NPREC           =SIMP(statut='f',typ='I',defaut= 8,val_min=0),
23941                ),
23942                b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23943                  TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23944                  PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23945                  POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
23946                  RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
23947                  ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23948                  PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23949                  RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23950                  OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23951                  LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),               
23952                ),
23953              ),
23954
23955            ),
23956
23957          VERI_MODE       =FACT(statut='d',min=0,
23958            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23959            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
23960            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
23961                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
23962            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23963          ),
23964          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
23965                                fr="Liste des param\350tres de sensibilit\351.",
23966                                ang="List of sensitivity parameters",
23967          ),
23968          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
23969              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
23970              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
23971              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
23972          ),
23973          STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23974          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
23975          TITRE           =SIMP(statut='f',typ='TXM',max='**'),        
23976 )  ;
23977 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
23978 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23979 # ======================================================================
23980 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23981 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23982 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23983 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23984 # (AT YOUR OPTION) ANY LATER VERSION.
23985 #
23986 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23987 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23988 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23989 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23990 #
23991 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23992 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23993 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23994 # ======================================================================
23995 # RESPONSABLE NISTOR I.NISTOR
23996
23997 MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca,
23998                    fr="Calcul de déformées statiques pour un déplacement, une force ou une accélération unitaire imposé",
23999                    reentrant='n',
24000             UIinfo={"groupes":("Résolution","Dynamique",)},
24001             
24002          regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE','MODE_INTERF'),
24003                  PRESENT_PRESENT('MODE_INTERF','MATR_MASS'),
24004                  PRESENT_PRESENT('PSEUDO_MODE','MATR_MASS'),
24005                  ),
24006                
24007                   
24008          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
24009          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
24010          
24011          
24012                
24013          MODE_STAT       =FACT(statut='f',max='**',
24014            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
24015                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
24016            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
24017            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
24018            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
24019            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
24020            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24021            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24022          ),
24023          FORCE_NODALE    =FACT(statut='f',max='**',
24024            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
24025                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
24026            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
24027            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
24028            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
24029            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
24030            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24031            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24032          ),
24033          PSEUDO_MODE       =FACT(statut='f',max='**',
24034            regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
24035            AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
24036            DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
24037            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
24038            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
24039            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
24040            b_dir           =BLOC(condition = "DIRECTION != None",
24041              NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
24042            b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
24043              regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
24044              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24045              AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24046              SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24047            ),
24048          ),
24049          MODE_INTERF    =FACT(statut='f',max='**',
24050            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
24051                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
24052            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
24053            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
24054            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
24055            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24056            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24057            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
24058            NBMOD           =SIMP(statut='o',typ='I',defaut= 1),
24059            FREQ            =SIMP(statut='o',typ='R',defaut= 1.0),
24060
24061          ),
24062
24063          SOLVEUR         =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
24064            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
24065
24066            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
24067              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24068            ),
24069
24070            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
24071              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24072            ),
24073            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
24074                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
24075              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24076              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24077            ),
24078
24079            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24080              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
24081              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
24082              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
24083              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
24084              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
24085              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
24086              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
24087              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
24088              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
24089              ),
24090
24091            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
24092              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
24093              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
24094              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
24095                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
24096                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
24097                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24098              ),
24099              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
24100                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
24101                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
24102              ),
24103              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
24104                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
24105                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
24106              ),
24107              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24108              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
24109            ),
24110
24111            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
24112              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
24113              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
24114                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
24115                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24116                ),
24117              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
24118                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
24119                ),
24120              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24121              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24122            ),
24123          ),
24124
24125
24126
24127          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24128          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
24129 )  ;
24130 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24131 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24132 # ======================================================================
24133 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24134 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24135 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24136 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24137 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24138 #
24139 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24140 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24141 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24142 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24143 #
24144 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24145 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24146 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24147 # ======================================================================
24148 # RESPONSABLE ADOBES A.ADOBES
24149 MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
24150                       reentrant='f',
24151             fr="Définir la base modale d'une structure sous écoulement",
24152             UIinfo={"groupes":("Matrices et vecteurs",)},
24153 #  la commande modi_base _modale : reentrant = f ou o                      
24154          regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
24155          BASE            =SIMP(statut='o',typ=mode_meca ),
24156          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
24157          NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
24158          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24159          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
24160          AMOR_UNIF       =SIMP(statut='f',typ='R' ),
24161          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
24162          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24163 )  ;
24164 #& MODIF COMMANDE  DATE 14/02/2011   AUTEUR GREFFET N.GREFFET 
24165 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24166 # ======================================================================
24167 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24168 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24169 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24170 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24171 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24172 #                                                                       
24173 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24174 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24175 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24176 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24177 #                                                                       
24178 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24179 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24180 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24181 # ======================================================================
24182 # RESPONSABLE GREFFET N.GREFFET
24183 #
24184 #  RECUPERATION DES EFFORTS VIA YACS POUR COUPLAGE IFS
24185 #
24186 MODI_CHAR_YACS=OPER(nom            = "MODI_CHAR_YACS",
24187                    op              = 112,
24188                    sd_prod         = char_meca,
24189                    reentrant       = 'o',
24190                    UIinfo          = {"groupes":("Résultats et champs",)},
24191                    fr              = "Reception des forces nodales via YACS lors du couplage de  Code_Aster et Saturne",
24192                    CHAR_MECA       = SIMP(statut ='o', typ = char_meca),
24193                    MATR_PROJECTION = SIMP(statut ='o', typ = corresp_2_mailla,),
24194                    NOM_CMP_IFS     = SIMP(statut ='o', typ = 'TXM',validators = NoRepeat(), max = '**'),
24195                    VIS_A_VIS       = FACT(statut ='o', max = '**',
24196                                    GROUP_MA_1 = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24197                                    GROUP_NO_2 = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
24198                    INST            = SIMP(statut='o',typ='R', ),
24199                    PAS             = SIMP(statut='o',typ='R', ),
24200                    NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
24201                    INFO            = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
24202 );
24203 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24204 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24205 # ======================================================================
24206 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24207 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24208 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24209 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24210 # (AT YOUR OPTION) ANY LATER VERSION.
24211 #
24212 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24213 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24214 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24215 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24216 #
24217 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24218 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24219 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24220 # ======================================================================
24221 # RESPONSABLE PELLET J.PELLET
24222 MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
24223                    fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant,"
24224                       +" à l'application d'une pression, à la modélisation du contact,...",
24225                    reentrant='o',
24226             UIinfo={"groupes":("Maillage",)},
24227       regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24228                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
24229                        'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB','SYMETRIE',
24230                        'ORIE_LIGNE',),
24231               PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24232                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
24233                        'ORIE_LIGNE'),
24234               PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
24235                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
24236                        'ORIE_LIGNE'),
24237               PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
24238                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
24239                        'ORIE_LIGNE'),
24240               PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
24241                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
24242                        'ORIE_LIGNE'),
24243               PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24244                        'PLAQ_TUBE','MODI_MAILLE',),
24245               PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24246                        'PLAQ_TUBE','MODI_MAILLE','ORIE_LIGNE'),
24247               PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24248                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE','ORIE_LIGNE'),
24249               PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
24250                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','ORIE_LIGNE'),
24251               EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
24252               EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
24253               EXCLUS('ROTATION','MODI_BASE'),
24254               EXCLUS('SYMETRIE','ROTATION'),
24255               EXCLUS('SYMETRIE','TRANSLATION'),
24256               EXCLUS('SYMETRIE','MODI_BASE'),
24257               EXCLUS('SYMETRIE','ECHELLE'),
24258               ),
24259          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
24260
24261          ORIE_FISSURE    =FACT(statut='f',
24262            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24263          ),
24264
24265          DEFORME         =FACT(statut='f',
24266            OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
24267            DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
24268         b_deform        =BLOC(condition = "OPTION=='TRAN_APPUI'",
24269            GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
24270            GROUP_NO_STRU  = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
24271          ),
24272
24273          EQUE_PIQUA      =FACT(statut='f',
24274            GROUP_NO        =SIMP(statut='o',typ=grno),
24275            E_BASE          =SIMP(statut='o',typ='R' ),
24276            DEXT_BASE       =SIMP(statut='o',typ='R' ),
24277            L_BASE          =SIMP(statut='o',typ='R' ),
24278            L_CHANF         =SIMP(statut='o',typ='R' ),
24279            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
24280            H_SOUD          =SIMP(statut='o',typ='R' ),
24281            ANGL_SOUD       =SIMP(statut='o',typ='R' ),
24282            JEU_SOUD        =SIMP(statut='o',typ='R' ),
24283            E_CORP          =SIMP(statut='o',typ='R' ),
24284            DEXT_CORP       =SIMP(statut='o',typ='R' ),
24285            AZIMUT          =SIMP(statut='o',typ='R' ),
24286            RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
24287            X_MAX           =SIMP(statut='o',typ='R' ),
24288          ),
24289          ORIE_PEAU_2D    =FACT(statut='f',max='**',
24290            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24291            GROUP_MA_SURF   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24292          ),
24293          ORIE_PEAU_3D    =FACT(statut='f',max='**',
24294            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24295            GROUP_MA_VOLU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24296          ),
24297          ORIE_SHB       =FACT(statut='f',max=1,
24298            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24299          ),
24300          ORIE_NORM_COQUE =FACT(statut='f',max='**',
24301            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24302            VECT_NORM       =SIMP(statut='f',typ='R',max=3),
24303            b_vect_norm     =BLOC(condition = "VECT_NORM != None",
24304              regles=UN_PARMI('NOEUD','GROUP_NO'),
24305              NOEUD           =SIMP(statut='f',typ=no),
24306              GROUP_NO        =SIMP(statut='f',typ=grno),
24307            ),
24308          ),
24309          ORIE_LIGNE =FACT(statut='f',max='**',
24310            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
24311            VECT_TANG       =SIMP(statut='f',typ='R',max=3),
24312            b_vect_tang     =BLOC(condition = "VECT_TANG != None",
24313              regles=UN_PARMI('NOEUD','GROUP_NO'),
24314              NOEUD           =SIMP(statut='f',typ=no),
24315              GROUP_NO        =SIMP(statut='f',typ=grno),
24316            ),
24317          ),
24318          PLAQ_TUBE       =FACT(statut='f',
24319            DEXT            =SIMP(statut='o',typ='R' ),
24320            EPAIS           =SIMP(statut='o',typ='R' ),
24321            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
24322            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
24323            COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
24324          ),
24325          TUBE_COUDE      =FACT(statut='f',
24326            ANGLE           =SIMP(statut='o',typ='R' ),
24327            R_CINTR         =SIMP(statut='o',typ='R' ),
24328            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
24329          ),
24330          MODI_MAILLE     =FACT(statut='f',max=1,
24331            regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
24332            OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
24333            GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
24334            MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
24335            GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
24336            NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
24337          ),
24338          MODI_BASE       =FACT(statut='f',
24339            VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
24340            VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
24341          ),
24342          ECHELLE         =SIMP(statut='f',typ='R',),
24343          TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
24344          ROTATION        =FACT(statut='f',max='**',
24345            POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
24346            ANGL             =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
24347            regles=(EXCLUS('DIR','POIN_2'),),
24348            POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
24349            DIR              =SIMP(statut='f',typ='R',min=2,max=3),
24350          ),
24351          SYMETRIE        =FACT(statut='f',max='**',
24352                           fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
24353            POINT           =SIMP(statut='o',typ='R',min=2,max=3,
24354                             fr="Point appartenant à la droite ou au plan."),
24355            AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
24356                             fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
24357            AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
24358                             fr="2nd vecteur appartenant du plan."),
24359          ),
24360          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
24361 )  ;
24362 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24363 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24364 # ======================================================================
24365 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
24366 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24367 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24368 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24369 # (AT YOUR OPTION) ANY LATER VERSION.
24370 #
24371 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24372 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24373 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24374 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24375 #
24376 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24377 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24378 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24379 # ======================================================================
24380 # RESPONSABLE PELLET J.PELLET
24381
24382 MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o',
24383          UIinfo={"groupes":("Modélisation",)},
24384          fr="Modifier la partition d'un modèle (parallélisme) ",
24385
24386          MODELE          =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,),
24387
24388          PARTITION         =FACT(statut='d',
24389              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM",
24390                                    into=("MAIL_CONTIGU","MAIL_DISPERSE","SOUS_DOMAINE","CENTRALISE","GROUP_ELEM")),
24391              b_dist_maille          =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')",
24392                  CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0),
24393              ),
24394              b_dist_sd          =BLOC(condition = "PARALLELISME == 'SOUS_DOMAINE'",
24395                  PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
24396                  CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0),
24397              ),
24398          ),
24399 )  ;
24400 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24401 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24402 # ======================================================================
24403 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
24404 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24405 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24406 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24407 # (AT YOUR OPTION) ANY LATER VERSION.
24408 #
24409 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24410 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24411 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24412 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24413 #
24414 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24415 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24416 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24417 # ======================================================================
24418 # RESPONSABLE GENIAUT S.GENIAUT
24419
24420 MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
24421             UIinfo={"groupes":("Modélisation","Rupture",)},
24422                            fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
24423                            
24424     MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,),
24425     FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
24426     CRITERE         =SIMP(statut='f',typ='R',defaut=1.1E-4),
24427     INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
24428     CONTACT        
24429      =SIMP(statut='f',typ='TXM',defaut='SANS',into=("P1P1","P1P1A","P2P1","SANS"),min=1,max=1,),
24430 )  ;
24431 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24432 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24433 # ======================================================================
24434 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24435 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24436 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24437 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24438 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24439 #
24440 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24441 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24442 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24443 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24444 #
24445 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24446 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24447 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24448 # ======================================================================
24449 # RESPONSABLE KHAM M.KHAM
24450 MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction,
24451             fr="Calculer les obstacles dans les systèmes guidage-tube après usure",
24452             reentrant='f',
24453             UIinfo={"groupes":("Modélisation",)},
24454       regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
24455               PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
24456          OBSTACLE        =SIMP(statut='f',typ=table_fonction),
24457          GUIDE           =SIMP(statut='o',typ=table_sdaster),
24458          CRAYON          =SIMP(statut='f',typ=table_sdaster),
24459          TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
24460          INST            =SIMP(statut='f',typ='R'),  
24461          R_MOBILE        =SIMP(statut='f',typ='R'),  
24462          PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
24463          V_USUR_TUBE     =SIMP(statut='f',typ='R',max='**'),
24464          V_USUR_OBST     =SIMP(statut='f',typ='R',max='**'),
24465          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
24466 )  ;
24467 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24468 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24469 # ======================================================================
24470 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24471 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24472 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24473 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24474 # (AT YOUR OPTION) ANY LATER VERSION.
24475 #
24476 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24477 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24478 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24479 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24480 #
24481 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24482 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24483 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24484 # ======================================================================
24485 # RESPONSABLE DESROCHES X.DESROCHES
24486 def modi_repere_prod(RESULTAT,**args):
24487   if AsType(RESULTAT) != None : return AsType(RESULTAT)
24488
24489 MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n',
24490             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
24491                     fr="Calcule des résultats dans le repère cylindrique",
24492          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
24493
24494          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
24495                         'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
24496          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24497          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24498          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24499          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
24500          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
24501
24502          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24503          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24504          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
24505          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
24506
24507          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
24508          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24509              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
24510          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24511              PRECISION       =SIMP(statut='o',typ='R',),),
24512
24513          MODI_CHAM       =FACT(statut='o',max='**',
24514            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24515            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24516            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24517            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24518            TYPE_CHAM       =SIMP(statut='o',typ='TXM',
24519                                  into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
24520            NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
24521            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
24522               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
24523            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
24524               NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
24525            b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
24526               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
24527            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
24528               NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
24529            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
24530               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
24531          ),
24532          DEFI_REPERE     =FACT(statut='o',
24533          regles=(UN_PARMI('ANGL_NAUT','ORIGINE','VECT_X'),),
24534            REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",
24535                                  into=("UTILISATEUR","CYLINDRIQUE"),),
24536            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
24537            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
24538            AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
24539            VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),
24540            b_vecteurs      =BLOC(condition = "VECT_X != None",             
24541               VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3 ),),
24542          ),
24543          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24544          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
24545 )  ;
24546 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24547 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24548 # ======================================================================
24549 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24550 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24551 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24552 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24553 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24554 #
24555 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24556 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24557 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24558 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24559 #
24560 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24561 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24562 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24563 # ======================================================================
24564 # RESPONSABLE NISTOR I.NISTOR
24565
24566 def norm_mode_prod(MODE,**args ):
24567   if AsType(MODE) == mode_meca   : return mode_meca
24568   if AsType(MODE) == mode_meca_c : return mode_meca_c
24569   if AsType(MODE) == mode_flamb  : return mode_flamb
24570   raise AsException("type de concept resultat non prevu")
24571
24572 NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
24573                fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur",
24574                reentrant='f',
24575             UIinfo={"groupes":("Résolution","Dynamique",)},
24576          regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),
24577                  CONCEPT_SENSIBLE('SEPARE'),
24578                  DERIVABLE('MODE'),),
24579          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
24580          NORME      =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
24581                           into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
24582          NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
24583          b_noeud    =BLOC(condition = "NOEUD != None",
24584            NOM_CMP    =SIMP(statut='o',typ='TXM' ),
24585          ),
24586          AVEC_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
24587          SANS_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
24588          MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
24589            NOEUD      =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
24590            NOM_CMP    =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
24591            SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
24592                             fr="Choix du signe" ),
24593          ),
24594          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
24595                                fr="Liste des param\350tres de sensibilit\351.",
24596                                ang="List of sensitivity parameters",
24597          ),
24598 #         b_base    =BLOC(condition = "AsType(MODE) == base_modale",
24599 #              MASSE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ),
24600 #              RAIDE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ),
24601 #              AMOR  = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
24602 #         ),
24603          MASSE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ),
24604          RAIDE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ),
24605          AMOR  = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
24606          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
24607          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
24608 )  ;
24609 #& MODIF COMMANDE  DATE 18/01/2011   AUTEUR BOITEAU O.BOITEAU 
24610 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24611 # ======================================================================
24612 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24613 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24614 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24615 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24616 # (AT YOUR OPTION) ANY LATER VERSION.
24617 #
24618 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24619 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24620 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24621 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24622 #
24623 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24624 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24625 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24626 # ======================================================================
24627 # RESPONSABLE PELLET J.PELLET
24628 NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
24629             UIinfo={"groupes":("Matrices et vecteurs",)},
24630               fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
24631                   regles=(UN_PARMI('MATR_RIGI','MODELE'),),
24632          MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
24633                                typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
24634          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
24635          b_modele        =BLOC(condition = "MODELE != None",
24636            CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
24637          ),
24638          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","PETSC","MUMPS") ),
24639          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
24640            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
24641          ),
24642          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
24643            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
24644          ),
24645          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24646            RENUM        =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
24647          ),
24648          b_gcpc          =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc",
24649            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
24650          ),
24651          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
24652 )  ;
24653 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24654 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24655 # ======================================================================
24656 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24657 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24658 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24659 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24660 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24661 #
24662 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24663 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24664 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24665 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24666 #
24667 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24668 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24669 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24670 # ======================================================================
24671 # RESPONSABLE BODEL C.BODEL
24672 NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
24673                    fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées",
24674                     reentrant='n',
24675             UIinfo={"groupes":("Matrices et vecteurs",)},
24676          regles=UN_PARMI('MODELE_GENE','BASE'),
24677          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
24678              b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
24679                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
24680                METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE","ELIMINE") ),
24681                                     ),
24682          BASE     =SIMP(statut='f',typ=(mode_meca,mode_gene ) ),
24683              b_base     =BLOC(condition = "BASE != None",
24684                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ),
24685                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
24686                              ),
24687 )  ;
24688 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
24689 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24690 # ======================================================================
24691 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24692 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24693 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24694 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24695 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24696 #                                                                       
24697 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24698 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24699 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24700 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24701 #                                                                       
24702 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24703 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24704 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24705 # ======================================================================
24706 # RESPONSABLE BODEL C.BODEL
24707
24708 from Macro.observation_ops import observation_ops
24709
24710
24711 def observation_prod(self, RESULTAT, **args):
24712     if  AsType(RESULTAT) == mode_meca :
24713         return mode_meca
24714     elif AsType(RESULTAT) == evol_elas :
24715         return evol_elas
24716     elif AsType(RESULTAT) == dyna_harmo :
24717         return dyna_harmo
24718     elif AsType(RESULTAT) == dyna_trans :
24719         return dyna_trans
24720     else :
24721         return None
24722
24723 OBSERVATION=MACRO(nom="OBSERVATION",op=observation_ops,
24724             UIinfo={"groupes":("Matrices et vecteurs",)},
24725                       sd_prod=observation_prod,
24726                       fr="Calcul de l'observabilite d'un champ aux noeuds ",
24727 #
24728          MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
24729          MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
24730          RESULTAT        =SIMP(statut='o',typ=(mode_meca,evol_elas,dyna_harmo,dyna_trans,) ),
24731          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
24732
24733 #        ------------------------------------------------------------------
24734
24735          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE','INST','LIST_INST' ),),
24736          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24737          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
24738          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
24739          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
24740          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
24741          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
24742          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
24743          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
24744          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
24745
24746 #        ------------------------------------------------------------------
24747 #        OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER)
24748 #        ------------------------------------------------------------------
24749          PROJECTION     =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="OUI"),
24750          CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
24751          DISTANCE_MAX    =SIMP(statut='f',typ='R',
24752                 fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
24753          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24754
24755          TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",), 
24756                 fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
24757
24758 #           PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
24759 #                fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger"
24760 #                   +" les champs par zéro la ou la projection ne donne pas de valeurs."),
24761
24762          MATR_A          =SIMP(statut='f',typ=(matr_asse_depl_r) ),
24763          MATR_B          =SIMP(statut='f',typ=(matr_asse_depl_r) ),
24764          VIS_A_VIS       =FACT(statut='f',max='**',
24765              regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
24766                      AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
24767              TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24768              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24769              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24770              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24771              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24772              TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24773              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24774              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24775              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24776              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24777              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
24778              ),
24779
24780 #        ------------------------------------------------------------------
24781 #        MODI_REPERE
24782 #        ------------------------------------------------------------------
24783          MODI_REPERE     =FACT(statut='f',max='**',
24784          regles=(UN_PARMI('REPERE'),
24785                  AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
24786            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24787            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24788            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24789            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24790            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24791 #
24792            TYPE_CHAM       =SIMP(statut='f',typ='TXM',
24793                                  into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),
24794                                        defaut="VECT_3D"),
24795            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
24796               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
24797            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
24798               NOM_CMP         =SIMP(statut='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),),
24799            b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
24800               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
24801            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
24802               NOM_CMP         =SIMP(statut='f',typ='TXM',min=4,max=4,defaut=('EPXX','EPYY','EPZZ','EPXY',) ),),
24803            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
24804               NOM_CMP         =SIMP(statut='f',typ='TXM',min=6,max=6,defaut=('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ',),),),
24805
24806            REPERE          =SIMP(statut='o',typ='TXM',
24807                                  into=("UTILISATEUR","CYLINDRIQUE","NORMALE","DIR_JAUGE"),),
24808            b_normale       =BLOC(condition = "REPERE=='NORMALE'",
24809              regles=(UN_PARMI('VECT_X','VECT_Y')),
24810              VECT_X          =SIMP(statut='f',typ='R',min=3,max=3),
24811              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3), ),
24812            b_utilisateur   =BLOC(condition = "REPERE=='UTILISATEUR'",
24813              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3)),
24814            b_cylindrique   =BLOC(condition = "REPERE=='CYLINDRIQUE'",
24815              ORIGINE         =SIMP(statut='o',typ='R',min=2,max=3),
24816              AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3)),
24817            b_dir_jauge       =BLOC(condition = "REPERE=='DIR_JAUGE'",
24818              VECT_X          =SIMP(statut='f',typ='R',min=3,max=3),
24819              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3), ),
24820          ),
24821
24822 #        ------------------------------------------------------------------
24823 #        EPSI_MOYENNE
24824 #        ------------------------------------------------------------------
24825          EPSI_MOYENNE     =FACT(statut='f',max='**',
24826                        regles=(AU_MOINS_UN('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
24827            NOEUD       = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24828            GROUP_NO     = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24829            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24830            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24831            SEUIL_VARI      =SIMP(statut='f',typ='R',validators=NoRepeat(),defaut=0.1,),
24832            MASQUE          =SIMP(statut='f',typ='TXM',max=6),
24833          ),
24834
24835 #        ------------------------------------------------------------------
24836 #        FILTRE DES DDL
24837 #        ------------------------------------------------------------------
24838          FILTRE     =FACT(statut='f',max='**',
24839            regles=(UN_PARMI('DDL_ACTIF'),
24840 #                           'MASQUE'),
24841            AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
24842            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24843            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24844            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24845            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24846            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24847            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),
24848
24849 #
24850            DDL_ACTIF       =SIMP(statut='f',typ='TXM',max=6),
24851 # TODO : mettre en place le systeme de masques
24852 #           MASQUE          =SIMP(statut='f',typ='TXM',max=6),
24853          ),
24854 #        ------------------------------------------------------------------
24855
24856          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
24857          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
24858       )  ;
24859 #& MODIF COMMANDE  DATE 23/02/2011   AUTEUR BARGELLI R.BARGELLINI 
24860 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24861 # ======================================================================
24862 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24863 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24864 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24865 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24866 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24867 #                                                                       
24868 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24869 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24870 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24871 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24872 #                                                                       
24873 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24874 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24875 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24876 # ======================================================================
24877 # RESPONSABLE BARGELLINI R.BARGELLINI
24878
24879
24880 from Macro.post_bordet_ops import post_bordet_ops
24881
24882
24883
24884 POST_BORDET =MACRO(nom="POST_BORDET", op=post_bordet_ops,sd_prod=table_sdaster,
24885                    UIinfo={"groupes":("Outils-métier","Rupture",)},
24886                    docu="",reentrant='n',fr="calcul de la probabilite de clivage via le modele de Bordet",
24887          regles=(UN_PARMI('TOUT','GROUP_MA'),
24888                  UN_PARMI('INST','NUME_ORDRE'),
24889                  ),
24890          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
24891          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
24892                            fr="le calcul ne sera effectué que sur ces mailles"),
24893          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24894          PRECISION =SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6),
24895          CRITERE   =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ),
24896          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24897          PROBA_NUCL      =SIMP(statut='f',typ='TXM',into=("NON","OUI"), defaut="NON",
24898                       fr="prise en compte du facteur exponentiel"),
24899          b_nucl          =BLOC( condition = "PROBA_NUCL=='OUI'",
24900                           PARAM =FACT(statut='o',
24901                                  M                =SIMP(statut='o',typ='R',val_min=0.E+0),
24902                                  SIGM_REFE         =SIMP(statut='o',typ=(fonction_sdaster),val_min=0.E+0),
24903                                  VOLU_REFE        =SIMP(statut='o',typ='R',val_min=0.E+0),
24904                                  SIG_CRIT         =SIMP(statut='o',typ='R',val_min=0.E+0),
24905                                  SEUIL_REFE       =SIMP(statut='o',typ='R',val_min=0.E+0),
24906                                  SEUIL_CALC       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster)),                   
24907                                  DEF_PLAS_REFE    =SIMP(statut='o',typ='R'),),),
24908                                  
24909          b_prop          =BLOC( condition = "PROBA_NUCL=='NON'",
24910                           PARAM =FACT(statut='o',
24911                                  M                =SIMP(statut='o',typ='R',val_min=0.E+0),
24912                                  SIGM_REFE         =SIMP(statut='o',typ=fonction_sdaster,val_min=0.E+0),
24913                                  VOLU_REFE        =SIMP(statut='o',typ='R',val_min=0.E+0),
24914                                  SIG_CRIT         =SIMP(statut='o',typ='R',val_min=0.E+0),
24915                                  SEUIL_REFE       =SIMP(statut='o',typ='R',val_min=0.E+0),
24916                                  SEUIL_CALC       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),),
24917                                  ),
24918                                  ),    
24919                                   
24920          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
24921                                       fr="Resultat d'une commande globale STAT_NON_LINE"),
24922          TEMP            =SIMP(statut='o',typ=(fonction_sdaster,'R')),
24923          COEF_MULT       =SIMP(statut='f',typ='R', defaut=1.),                   
24924            )
24925 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24926 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24927 # ======================================================================
24928 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
24929 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24930 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24931 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24932 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24933 #                                                                       
24934 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24935 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24936 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24937 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24938 #                                                                       
24939 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24940 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24941 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24942 # ======================================================================
24943 # RESPONSABLE GENIAUT S.GENIAUT
24944 def post_cham_xfem_prod(RESULTAT,**args ):
24945  
24946   if AsType(RESULTAT) == evol_noli  : return evol_noli
24947   if AsType(RESULTAT) == mode_meca : return mode_meca
24948
24949   raise AsException("type de concept resultat non prevu")
24950
24951 POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=post_cham_xfem_prod,
24952                     reentrant='n',UIinfo={"groupes":("Post-traitements","Rupture",)},
24953             fr="Calcul des champs DEPL, SIEF_ELGA et VARI_ELGA sur le maillage de visualisation (fissuré)",
24954     MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster),
24955     RESULTAT      = SIMP(statut='o',typ=resultat_sdaster),
24956     MODELE_VISU   = SIMP(statut='o',typ=modele_sdaster,),
24957     INFO          = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
24958 );                     
24959 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24960 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24961 # ======================================================================
24962 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
24963 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24964 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24965 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24966 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24967 #                                                                       
24968 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24969 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24970 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24971 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24972 #                                                                       
24973 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24974 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24975 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24976 # ======================================================================
24977 # RESPONSABLE DESROCHES X.DESROCHES
24978
24979 from Macro.post_coque_ops import post_coque_ops
24980 POST_COQUE=MACRO(nom="POST_COQUE",op=post_coque_ops,sd_prod=table_sdaster, reentrant='n',
24981              UIinfo={"groupes":("Post-traitements",)},
24982              fr="Calcul des efforts et déformations en un point et une cote quelconque de la coque",
24983
24984              regles=(EXCLUS('INST','NUME_ORDRE'),),
24985
24986              # SD résultat et champ à posttraiter :
24987              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à posttraiter",),
24988              CHAM            =SIMP(statut='o',typ='TXM',into=("EFFORT","DEFORMATION",)),
24989              NUME_ORDRE      =SIMP(statut='f',typ='I'),
24990              INST            =SIMP(statut='f',typ='R'),
24991
24992              # points de post-traitement :
24993              COOR_POINT      =FACT(statut='o',max='**',fr="coordonnées et position dans l'épaisseur",
24994                                    COOR=SIMP(statut='o',typ='R',min=3,max=4),),
24995
24996             )
24997 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
24998 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24999 # ======================================================================
25000 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
25001 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
25002 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
25003 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
25004 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
25005 #                                                                       
25006 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
25007 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
25008 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
25009 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
25010 #                                                                       
25011 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
25012 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
25013 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
25014 # ======================================================================
25015 # RESPONSABLE DEVESA G.DEVESA
25016
25017 from Macro.post_decollement_ops import post_decollement_ops
25018
25019 POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT",op=post_decollement_ops,sd_prod=table_sdaster,
25020                      fr="calcul du rapport de surfaces de contact radier/sol",
25021                      reentrant='n',
25022             UIinfo={"groupes":("Post-traitements",)},
25023          RESULTAT   =SIMP(statut='o',typ=(evol_noli) ),
25024          NOM_CHAM   =SIMP(statut='f',typ='TXM',defaut='DEPL',into=C_NOM_CHAM_INTO(),max=1),
25025          NOM_CMP    =SIMP(statut='f',typ='TXM',defaut='DZ',max=1),
25026          GROUP_MA   =SIMP(statut='o',typ=grma,max=1),
25027          INFO       =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
25028 )
25029 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
25030 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25031 # ======================================================================
25032 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
25033 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25034 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25035 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
25036 # (AT YOUR OPTION) ANY LATER VERSION.                                 
25037 #
25038 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
25039 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
25040 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
25041 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
25042 #
25043 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
25044 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
25045 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
25046 # ======================================================================
25047 # RESPONSABLE ZENTNER I.ZENTNER
25048 from Macro.post_dyna_alea_ops import post_dyna_alea_ops
25049 POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",op= post_dyna_alea_ops,sd_prod=table_sdaster,
25050                     fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
25051                     reentrant='n',
25052             UIinfo={"groupes":("Post-traitements","Dynamique",)},
25053          regles=(UN_PARMI('FRAGILITE','INTE_SPEC'),),
25054          FRAGILITE  =FACT(statut='f',fr="donnees pour courbe de fragilite",max='**', 
25055                     TABL_RESU  =SIMP(statut='o',typ=table_sdaster),
25056                     regles=(UN_PARMI('VALE','LIST_PARA'),),
25057                     VALE       = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ), 
25058                     LIST_PARA  = SIMP(statut='f',typ=listr8_sdaster), 
25059                     AM_INI     =  SIMP(statut='f',typ='R',defaut= 0.4 ), 
25060                     BETA_INI   = SIMP(statut='f',typ='R',defaut= 0.3 ), 
25061                     FRACTILE   = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'),
25062                     b_inte_spec_f  = BLOC(condition="""FRACTILE !=None""",
25063                         NB_TIRAGE =SIMP(statut='f',typ='I' ),),                   
25064                  ),
25065          INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
25066          b_inte_spec_f      =BLOC(condition="""INTE_SPEC !=None""",
25067             regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
25068             NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),  
25069             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
25070             NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
25071             NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
25072             OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
25073             b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
25074                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
25075                                 ),  
25076             b_noeud_i      =BLOC(condition = "NOEUD_I != None",
25077                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
25078                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
25079                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
25080                                 ), 
25081             MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), 
25082             ),  
25083          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
25084          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
25085 )  ;
25086 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
25087 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25088 # ======================================================================
25089 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
25090 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25091 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25092 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
25093 # (AT YOUR OPTION) ANY LATER VERSION.                                 
25094 #
25095 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
25096 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
25097 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
25098 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
25099 #
25100 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
25101 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
25102 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
25103 # ======================================================================
25104 # RESPONSABLE BOYERE E.BOYERE
25105 POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster,
25106                       fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL",
25107                       reentrant='n',
25108             UIinfo={"groupes":("Post-traitements","Dynamique",)},
25109         regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
25110          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
25111          CHOC            =FACT(statut='f',max='**',
25112                                fr="Analyse des non linéarités de choc",
25113            INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
25114            INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
25115            NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
25116            SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
25117            DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
25118            OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
25119            NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
25120          ),
25121          RELA_EFFO_DEPL  =FACT(statut='f',
25122                                fr="Analyse des relationsnon linéaires effort-déplacement",
25123            NOEUD           =SIMP(statut='o',typ=no),
25124            NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
25125          ),
25126          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
25127          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
25128 )  ;
25129 #& MODIF COMMANDE  DATE 22/02/2011   AUTEUR TARDIEU N.TARDIEU 
25130 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25131 # ======================================================================
25132 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
25133 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25134 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25135 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25136 # (AT YOUR OPTION) ANY LATER VERSION.
25137 #
25138 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25139 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25140 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25141 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25142 #
25143 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
25144 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
25145 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
25146 # ======================================================================
25147 # RESPONSABLE DESROCHES X.DESROCHES
25148 POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
25149             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
25150                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
25151
25152          regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT','MINMAX',
25153                           'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
25154                           'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL','VOLUMOGRAMME',
25155                           'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','ENER_DISS','INTEGRALE'),
25156                 ),
25157
25158          MASS_INER      = FACT(statut='f',max='**',
25159                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25160                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25161                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25162                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25163                                ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
25164                               ),
25165          b_mass_iner = BLOC(condition = "( MASS_INER != None )",
25166                        fr="calcul de la masse, les inerties et le centre de gravité",
25167                        regles=(EXCLUS('CHAM_GD','RESULTAT'),
25168                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
25169                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
25170                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25171                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25172                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25173                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25174                                         char_ther,char_acou),validators=NoRepeat(),max='**' ),
25175                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25176                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25177                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25178                        GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
25179                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25180                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
25181                                                              fourier_elas,dyna_trans) ),
25182                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25183                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25184                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25185                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25186                           PRECISION       =SIMP(statut='o',typ='R',),),
25187                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25188                        NUME_ORDRE     = SIMP(statut='f',typ='I',),
25189                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25190                        INST           = SIMP(statut='f',typ='R',),
25191                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25192                        FREQ           = SIMP(statut='f',typ='R',),
25193                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
25194                        NUME_MODE      = SIMP(statut='f',typ='I',),
25195                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
25196                        NOM_CAS        = SIMP(statut='f',typ='TXM',),
25197          ),
25198
25199          ENER_POT       = FACT(statut='f',max='**',
25200                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25201                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25202                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25203                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25204                               ),
25205          b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
25206                        fr="calcul de l'énergie potentielle de déformation",
25207                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25208                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
25209                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
25210                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25211                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25212                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25213                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25214                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25215                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25216                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25217                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
25218                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25219                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25220                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
25221                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25222                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25223                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25224                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25225                           PRECISION       =SIMP(statut='o',typ='R',),),
25226                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25227                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25228                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25229                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25230                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25231                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25232                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
25233                        NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
25234                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
25235                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
25236          ),
25237
25238          ENER_CIN       = FACT(statut='f',max='**',
25239                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25240                                OPTION       = SIMP(statut='f',typ='TXM',
25241                                                    into=("MASS_MECA","MASS_MECA_DIAG"),
25242                                                    defaut="MASS_MECA" ),
25243                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25244                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25245                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25246                               ),
25247          b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
25248                        fr="calcul de l'énergie cinétique",
25249                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25250                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
25251                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
25252                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25253                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25254                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25255                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25256                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25257                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25258                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25259                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
25260                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25261                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25262                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
25263                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25264                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25265                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25266                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25267                           PRECISION       =SIMP(statut='o',typ='R',),),
25268                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25269                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25270                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25271                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25272                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25273                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25274                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
25275                        NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25276                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
25277                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
25278          ),
25279
25280          ENER_DISS      = FACT(statut='f',max='**',
25281                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25282                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25283                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25284                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25285                               ),
25286          b_ener_diss = BLOC(condition = "( ENER_DISS != None )",
25287                        fr="calcul de l'énergie dissipée",
25288                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25289                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25290                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25291                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25292                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25293                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25294                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25295                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25296                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25297                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25298                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25299                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25300                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25301                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25302                           PRECISION       =SIMP(statut='o',typ='R',),),
25303                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25304                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25305                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25306                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25307                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25308          ),
25309
25310
25311          ENER_ELAS      = FACT(statut='f',max='**',
25312                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25313                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25314                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25315                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25316                               ),
25317          b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
25318                        fr="calcul de l'énergie de déformation élastique",
25319                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25320                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25321                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25322                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25323                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25324                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25325                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25326                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25327                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25328                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25329                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25330                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25331                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25332                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25333                           PRECISION       =SIMP(statut='o',typ='R',),),
25334                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25335                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25336                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25337                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25338                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25339          ),
25340
25341          ENER_TOTALE    = FACT(statut='f',max='**',
25342                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25343                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25344                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25345                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25346                               ),
25347          b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
25348                        fr="calcul de l'énergie de déformation totale",
25349                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25350                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25351                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25352                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25353                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25354                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25355                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25356                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25357                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25358                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25359                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25360                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25361                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25362                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25363                           PRECISION       =SIMP(statut='o',typ='R',),),
25364                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25365                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25366                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25367                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25368                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25369          ),
25370
25371          INTEGRALE  = FACT(statut='f',max='**',
25372                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25373                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25374                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25375                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25376                                NOM_CHAM     = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
25377                                NOM_CMP      = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
25378                                DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),),
25379                               ),
25380          b_integrale = BLOC(condition = "( INTEGRALE != None )",
25381                        fr="calcul de la moyenne d'une composante",
25382                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25383                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),),
25384                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25385                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25386                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ),
25387                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25388                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25389                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25390                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25391                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25392                           PRECISION       =SIMP(statut='o',typ='R',),),
25393                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25394                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25395                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25396                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25397                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25398          ),
25399
25400          VOLUMOGRAMME  = FACT(statut='f',max='**',
25401                                regles=(AU_MOINS_UN('TOUT','GROUP_MA'),),
25402                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25403                                GROUP_MA     = SIMP(statut='f',typ=grma,max=1),
25404                                TYPE_MAILLE  = SIMP(statut='f',typ='TXM',into=('2D','3D',)),
25405                                NOM_CHAM     = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
25406                                NOM_CMP      = SIMP(statut='o',typ='TXM'),
25407                                NB_INTERV    = SIMP(statut='f',typ='I',defaut=5),
25408                               ),
25409          b_volumogramme = BLOC(condition = "( VOLUMOGRAMME != None )",
25410                        fr="calcul de la distribution du volume d'une structure vis-à-vis d'une composante",
25411                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25412                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),),
25413                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25414                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25415                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ),
25416                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25417                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25418                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25419                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25420                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25421                           PRECISION       =SIMP(statut='o',typ='R',),),
25422                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25423                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25424                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25425                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25426                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25427          ),
25428
25429
25430          MINMAX  = FACT(statut='f',max=1,
25431                        fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés",
25432                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25433                                PRESENT_PRESENT('CHAM_GD','MODELE'),
25434                                PRESENT_PRESENT('RESULTAT','NOM_CHAM'),
25435                                AU_MOINS_UN('TOUT','GROUP_MA'),),
25436                        TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25437                        GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25438                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ),
25439                        NOM_CHAM       = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
25440                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25441                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25442                        NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
25443               b_minmax = BLOC(condition = "( RESULTAT != None )",
25444                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25445                               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25446                               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25447                                   PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25448                               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25449                                   PRECISION       =SIMP(statut='o',typ='R',),),
25450                               TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25451                               NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25452                               LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25453                               INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25454                               LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25455                               ),
25456          ),
25457
25458          WEIBULL        = FACT(statut='f',max='**',
25459                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25460                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25461                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25462                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25463                                OPTION       = SIMP(statut='f',typ='TXM',
25464                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
25465                                                    defaut="SIGM_ELGA"),
25466                                CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
25467                                COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
25468                               ),
25469          b_weibull = BLOC(condition = "( WEIBULL != None )",
25470                        fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
25471                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25472                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25473                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25474                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25475                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25476                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25477                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25478                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25479                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25480                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25481                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25482                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
25483                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25484                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25485                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25486                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25487                           PRECISION       =SIMP(statut='o',typ='R',),),
25488                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25489                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25490                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25491                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25492                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25493          ),
25494
25495          RICE_TRACEY    = FACT(statut='f',max='**',
25496                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25497                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25498                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25499                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25500                                OPTION       = SIMP(statut='f',typ='TXM',
25501                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
25502                                                    defaut="SIGM_ELGA"),
25503                                LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
25504                               ),
25505          b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
25506                        fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
25507                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
25508                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25509                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25510                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25511                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25512                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25513                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25514                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
25515                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
25516                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25517                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
25518                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
25519                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25520                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25521                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25522                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25523                           PRECISION       =SIMP(statut='o',typ='R',),),
25524                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25525                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25526                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25527                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25528                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25529          ),
25530
25531          INDIC_ENER     = FACT(statut='f',max='**',
25532                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25533                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25534                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25535                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25536                               ),
25537          b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
25538                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
25539                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25540                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25541                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25542                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25543                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25544                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25545                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25546                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25547                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25548                            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25549                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25550                            PRECISION       =SIMP(statut='o',typ='R',),),
25551                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25552                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25553                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25554                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25555                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25556          ),
25557
25558          INDIC_SEUIL    = FACT(statut='f',max='**',
25559                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25560                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25561                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25562                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25563                               ),
25564          b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
25565                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
25566                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25567                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25568                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25569                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25570                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25571                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25572                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25573                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25574                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25575                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25576                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25577                           PRECISION       =SIMP(statut='o',typ='R',),),
25578                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25579                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25580                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25581                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25582                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25583          ),
25584
25585          CHAR_LIMITE    = FACT(statut='f',min=0,
25586                                CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
25587                               ),
25588          b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
25589                        fr="post-traitement du calcul de la charge limite",
25590                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25591                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25592                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
25593                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25594                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25595                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25596                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
25597                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
25598                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25599                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25600                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25601                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25602                           PRECISION       =SIMP(statut='o',typ='R',),),
25603                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25604                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
25605                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
25606                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
25607                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
25608          ),
25609
25610          CARA_GEOM      = FACT(statut='f',max='**',
25611                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
25612                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25613                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
25614                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25615                                SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
25616                                SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
25617                                ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
25618                               ),
25619          b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
25620                        fr="calcul des caractéristiques géométriques d'un section de poutre",
25621                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25622                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25623                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25624                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25625                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25626          ),
25627
25628          CARA_POUTRE    = FACT(statut='f',max='**',
25629                                regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
25630                                        ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
25631                                TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25632                                GROUP_MA      = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25633                                GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
25634                                CARA_GEOM     = SIMP(statut='o',typ=table_sdaster),
25635                                RT            = SIMP(statut='f',typ='R'),
25636                                LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
25637                                LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
25638                                LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
25639                                LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
25640                                LONGUEUR      = SIMP(statut='f',typ='R'),
25641                                MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
25642                                OPTION        = SIMP(statut='f',typ='TXM',
25643                                                     into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
25644                              ),
25645          b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
25646                        fr="calcul des caractéristiques mécaniques d'un section de poutre",
25647                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25648                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
25649                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
25650                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
25651                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
25652          ),
25653
25654           AIRE_INTERNE   = FACT(statut='f',max='**',
25655                                 GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
25656                                ),
25657          b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
25658                        fr="calcul de l'aire d'un trou dans un maillage 2D",
25659                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
25660          ),
25661
25662          TRAV_EXT       = FACT(statut='f',),
25663          b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
25664                        fr="calcul du travail des efforts extérieurs",
25665                        RESULTAT       = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ),
25666                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
25667                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25668                            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
25669                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25670                            PRECISION       =SIMP(statut='o',typ='R',),),
25671                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
25672          ),
25673
25674          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
25675          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
25676
25677  )  ;
25678 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
25679 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25680 # ======================================================================
25681 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
25682 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
25683 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
25684 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
25685 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
25686 #                                                                       
25687 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
25688 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
25689 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
25690 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
25691 #                                                                       
25692 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
25693 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
25694 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
25695 # ======================================================================
25696 # RESPONSABLE BOTTONI M.BOTTONI
25697
25698 # ---------------------------------------------------------------------------
25699 #                  POST_ENDO_FISS
25700 # RECHERCHE DU TRAJET DE FISSURATION SUR UN
25701 #  CHAMP SCALAIRE 2D
25702
25703
25704 from Macro.post_endo_fiss_ops import post_endo_fiss_ops
25705
25706
25707 def post_endo_fiss_prod(self,TABLE,**args) :
25708     self.type_sdprod(TABLE,table_sdaster)
25709     return maillage_sdaster
25710
25711 POST_ENDO_FISS=MACRO(nom       = "POST_ENDO_FISS",
25712                      op        = post_endo_fiss_ops,
25713                      sd_prod  = post_endo_fiss_prod,
25714                      reentrant = 'n',
25715                      UIinfo = {"groupes":("Post-traitements","Outils-métier",)},
25716                      fr = "Individuation du trace d'une fissure a partir d'un champ scalaire pertinant",
25717
25718             TABLE  = SIMP(statut = 'o', typ = CO,),
25719
25720             regles = (UN_PARMI("RESULTAT","CHAM_GD"),
25721                       ),
25722
25723             b_resultat = BLOC(condition  = "RESULTAT != None",
25724                               regles     = (UN_PARMI('NUME_ORDRE','INST'),),
25725                               NUME_ORDRE = SIMP(statut = 'f', typ = 'I', validators = NoRepeat(), max='**'),
25726                               INST       = SIMP(statut = 'f', typ = 'R', validators = NoRepeat(), max='**'),
25727                               MODELE     = SIMP(statut = 'f', typ = modele_sdaster,
25728                                                 fr = "nom du modele a associer au champ",),),
25729
25730             b_champ    = BLOC(condition = "CHAM_GD != None",
25731                               MODELE    = SIMP(statut = 'o', typ = modele_sdaster,
25732                                                fr = "nom du modele a associer au champ",),),
25733
25734             CHAM_GD         = SIMP(statut = 'f',typ = (cham_gd_sdaster)),
25735             RESULTAT        = SIMP(statut = 'f',typ = (evol_noli)),
25736             NOM_CMP         = SIMP(statut = 'o',typ='TXM',),
25737             NOM_CHAM        = SIMP(statut = 'o', typ = 'TXM',
25738                                    fr = "nom du champ a post-traiter",),
25739
25740             RECHERCHE = FACT(statut = 'o',min=1,max='**',
25741                            regles = (
25742                                        PRESENT_ABSENT('TOUT','GROUP_MA',),
25743                                     ),
25744                               LONG_ORTH  = SIMP(statut='o', typ='R'),
25745                               NB_POINT   = SIMP(statut='f', typ='I', defaut = 500),
25746                               PAS        = SIMP(statut='o', typ='R', max='**'),
25747                               LONG_REG   = SIMP(statut='o', typ='R'),
25748                               SEUIL      = SIMP(statut='o', typ='R'),
25749                               ANGL_MAX   = SIMP(statut='f', typ='R', defaut=180.),
25750                               TOUT       = SIMP(statut='f', typ='TXM', into=("OUI",) ),
25751                               GROUP_MA   = SIMP(statut='f', typ=grma,  validators=NoRepeat(),max='**'),
25752                               ),
25753                    )
25754
25755
25756
25757 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
25758 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25759 # ======================================================================
25760 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
25761 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25762 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25763 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
25764 # (AT YOUR OPTION) ANY LATER VERSION.                                 
25765 #
25766 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
25767 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
25768 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
25769 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
25770 #
25771 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
25772 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
25773 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
25774 # ======================================================================
25775 # RESPONSABLE ZENTNER I.ZENTNER
25776 POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n',
25777             UIinfo={"groupes":("Post-traitements","Rupture",)},
25778                     fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire",
25779          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
25780                  PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
25781                  UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
25782          MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
25783          MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
25784          MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
25785          TABL_POST_ALEA  =SIMP(statut='f',typ=table_sdaster),
25786          COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
25787          DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
25788          CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
25789          DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
25790          MATER           =SIMP(statut='o',typ=mater_sdaster),
25791          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
25792 )  ;
25793 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
25794 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25795 # ======================================================================
25796 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
25797 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25798 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25799 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25800 # (AT YOUR OPTION) ANY LATER VERSION.
25801 #
25802 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25803 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25804 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25805 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25806 #
25807 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
25808 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
25809 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
25810 # ======================================================================
25811 # RESPONSABLE ANGLES J.ANGLES
25812 POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n',
25813             UIinfo={"groupes":("Post-traitements","Rupture",)},
25814                   fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement",
25815
25816          CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
25817
25818          b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
25819                       regles=(PRESENT_PRESENT('CORR_KE','MATER'),
25820                               PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
25821                               PRESENT_PRESENT('DOMMAGE','MATER'),),
25822              HISTOIRE       = FACT(statut='o',
25823                                  regles=(UN_PARMI('SIGM','EPSI'),),
25824                                  SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
25825                                  EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
25826              COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
25827              DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
25828              COEF_MULT      = FACT(statut='f',
25829                                  KT    = SIMP(statut='o',typ='R'),),
25830              CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
25831              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
25832                                                               "TAHERI_MANSON","TAHERI_MIXTE")),
25833              MATER          = SIMP(statut='f',typ=mater_sdaster),
25834              CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
25835              TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
25836              TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
25837              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
25838          ),
25839
25840          b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
25841              HISTOIRE       = FACT(statut='o',
25842                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25843                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25844                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25845                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25846                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
25847                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
25848              CRITERE        = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
25849              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
25850              MATER          = SIMP(statut='o',typ=mater_sdaster),
25851              COEF_CORR      = SIMP(statut='f',typ='R'),
25852          ),
25853
25854          b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
25855              HISTOIRE       = FACT(statut='o',
25856                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25857                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25858                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25859                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25860                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
25861                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
25862                                  EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
25863                                  TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
25864              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
25865              MATER          = SIMP(statut='o',typ=mater_sdaster),
25866              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
25867          ),
25868
25869          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
25870          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
25871 )  ;
25872 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR MACOCCO K.MACOCCO 
25873 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25874 # ======================================================================
25875 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
25876 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
25877 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
25878 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
25879 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
25880 #                                                                       
25881 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
25882 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
25883 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
25884 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
25885 #                                                                       
25886 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
25887 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
25888 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
25889 # ======================================================================
25890 # RESPONSABLE WADIER Y.WADIER
25891    
25892 from Macro.post_gp_ops import post_gp_ops
25893
25894 def post_gp_prod(self, TABL_GPMAX,TABL_GP, **kargs):
25895    """Typage des sd_prod
25896    """
25897    if TABL_GPMAX != None:
25898       self.type_sdprod(TABL_GPMAX, table_sdaster)
25899    if TABL_GP != None :
25900       if TABL_GPMAX != None:
25901          self.type_sdprod(TABL_GPMAX, table_sdaster)
25902          self.type_sdprod(TABL_GP, table_sdaster)
25903    return table_sdaster
25904
25905
25906 POST_GP=MACRO(nom="POST_GP", op=post_gp_ops, sd_prod=post_gp_prod,
25907               fr="Calcul du critère énergétique Gp suite à un calcul thermo-mécanique",
25908               reentrant='n',
25909               UIinfo={"groupes":("Post-traitements","Rupture",)},
25910               regles=(UN_PARMI('IDENTIFICATION', 'PREDICTION'),
25911                       UN_PARMI('THETA_2D','THETA_3D'),),
25912       
25913       # Résultat, modèle, comportement, chargement
25914       RESULTAT     = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
25915       RESU_THER    = SIMP(statut='f',typ=evol_ther,),
25916       MODELE       = SIMP(statut='o',typ=modele_sdaster),
25917       MATER        = SIMP(statut='o',typ=mater_sdaster),
25918       
25919       COMP_ELAS    = C_COMP_ELAS('POST_GP'),
25920       
25921       LIST_INST    = SIMP(statut='o',typ=listr8_sdaster),
25922
25923       TYPE_DEF = SIMP(statut='f',typ='TXM', defaut="PETIT", into=("PETIT","GRAND")),
25924       EXCIT        = FACT(statut='f', max='**',
25925             CHARGE      = SIMP(statut='o', typ=(char_meca,char_cine_meca)),
25926             FONC_MULT   = SIMP(statut='f', typ=(fonction_sdaster,nappe_sdaster,formule)),
25927             TYPE_CHARGE = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",)),
25928       ),
25929       SYME_CHAR    = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS")),
25930       
25931       b_direction     =BLOC(condition = "(THETA_2D != None) ",
25932           DIRECTION    = SIMP(statut='o', typ='R', max=3),),
25933       
25934       THETA_2D     = FACT(statut='f', max='**',
25935                           fr="paramètres de définition des champs theta",
25936             GROUP_NO    = SIMP(statut='o', typ=grno, validators=NoRepeat(), max='**'),
25937             R_INF       = SIMP(statut='o', typ='R'),
25938             R_SUP       = SIMP(statut='o', typ='R'),),
25939
25940       b_theta_2d=BLOC(condition="(THETA_2D != None)",
25941            # correction axisymétrie
25942             RAYON_AXIS   = SIMP(statut='f', typ='R', val_min=0., defaut=1.),
25943             TRANCHE = FACT(statut='o', max=1,
25944      
25945                            GROUP_MA  = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
25946                            ),),
25947
25948       THETA_3D        =FACT(statut='f',max='**',
25949             GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
25950             R_INF           =SIMP(statut='o',typ='R'),
25951             R_SUP           =SIMP(statut='o',typ='R'),
25952                          ),
25953          b_theta_3d     =BLOC(condition="THETA_3D != None",
25954             LISSAGE         =FACT(statut='d',
25955                 DEGRE            =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
25956                 LISSAGE_THETA    =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",
25957                                   into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
25958                 LISSAGE_G        =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",
25959                                   into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),),
25960                              ),
25961     
25962             FOND_FISS       =SIMP(statut='o',typ=fond_fiss,max=1,),
25963             TRANCHE = FACT(statut='o', max='**',
25964                            GROUP_MA  = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
25965                            ),),
25966
25967       # prise en compte de la traction compression
25968       TRAC_COMP    = SIMP(statut='f',typ='TXM',into=("OUI",),
25969                           fr="prise en compte de la traction-compression (plus lent)",
25970                          ),
25971
25972       # critère sur Gp
25973       CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU",
25974                           into=("RELATIF","ABSOLU")),
25975             
25976       # identification
25977       IDENTIFICATION = FACT(statut='f', max=1,
25978             KJ_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
25979             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
25980       ),
25981       
25982       # prédiction
25983       PREDICTION   = FACT(statut='f', max=1,
25984             GP_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
25985             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
25986       ),
25987       
25988       # table résultat
25989       TABL_GPMAX    = SIMP(statut='o', typ=CO,),
25990       TABL_GP       = SIMP(statut='f', typ=CO,),
25991       INFO         = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),),
25992 )
25993 #& MODIF COMMANDE  DATE 14/03/2011   AUTEUR GENIAUT S.GENIAUT 
25994 #            CONFIGURATION MANAGEMENT OF EDF VERSION
25995 # ======================================================================
25996 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
25997 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25998 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25999 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26000 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26001 #
26002 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26003 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26004 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26005 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26006 #
26007 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26008 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26009 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26010 # ======================================================================
26011 # RESPONSABLE GALENNE E.GALENNE
26012 from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops
26013 POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster,
26014                    fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements"
26015                      +" sur les lèvres de la fissure",
26016                    reentrant='n',
26017             UIinfo={"groupes":("Post-traitements","Rupture",)},
26018
26019            regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
26020                    EXCLUS('FISSURE','FOND_FISS'),
26021                    PRESENT_PRESENT('FISSURE','RESULTAT'),
26022                    PRESENT_PRESENT('FOND_FISS','VECT_K1'),
26023                    PRESENT_PRESENT('TABL_DEPL_SUP','VECT_K1'),
26024                    #PRESENT_PRESENT('RESULTAT','FOND_FISS'),
26025                    ),
26026
26027          MODELISATION  =SIMP(statut='o',typ='TXM',
26028                              into=("3D","AXIS","D_PLAN","C_PLAN"),position='global',
26029                              fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
26030          FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
26031          FISSURE       =SIMP(statut='f',typ=fiss_xfem),
26032          NB_NOEUD_COUPE=SIMP(statut='f',typ='I',defaut=5,val_min = 3),
26033          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS")),
26034
26035 #        bloc correspondant a la donnee du fond de fissure pour les fissures maillees
26036          b_fond_fiss_res   =BLOC (condition="((FOND_FISS!= None)and(RESULTAT!= None))",
26037                          
26038               b_ref_3d     =BLOC (condition="MODELISATION=='3D'",
26039                                   TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"),
26040                                 ),
26041                          
26042                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26043                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26044                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26045                          SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26046                          TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
26047                          EVOL_THER     = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure")
26048                          ),
26049
26050          b_fond_fiss_tab   =BLOC (condition="((FOND_FISS!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== None))",
26051
26052                          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
26053                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26054                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26055                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26056                          SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26057                          TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
26058                          EVOL_THER     = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure")
26059                          ),
26060 #        bloc correspondant a la donnee de la fissure pour les fissures X-FEM
26061          b_fissure_res     =BLOC (condition="((FISSURE!= None)and(RESULTAT!= None))",
26062                          NB_POINT_FOND = SIMP(statut='f',typ='I' ,),
26063                          NUME_FOND     = SIMP(statut='f',typ='I',defaut=1),
26064                          DTAN_ORIG     = SIMP(statut='f',typ='R',max='**'),
26065                          DTAN_EXTR     = SIMP(statut='f',typ='R',max='**'),
26066                          ),
26067
26068          b_fissure_tab     =BLOC (condition="((FISSURE!= None)and(TABL_DEPL_SUP!= None)and(RESULTAT== None))",
26069                          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
26070                          NB_POINT_FOND = SIMP(statut='f',typ='I' ,),
26071                          NUME_FOND     = SIMP(statut='f',typ='I',defaut=1),
26072                          DTAN_ORIG     = SIMP(statut='f',typ='R',max='**'),
26073                          DTAN_EXTR     = SIMP(statut='f',typ='R',max='**'),
26074                          ),
26075
26076          MATER         =SIMP(statut='o',typ=mater_sdaster,
26077                              fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
26078          RESULTAT      =SIMP(statut='f',typ=(evol_elas,evol_noli),
26079                              fr="Déplacement des noeuds de la lèvre supérieure et inférieure"),
26080          TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster,
26081                              fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
26082          TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster,
26083                              fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
26084          ABSC_CURV_MAXI=SIMP(statut='o',typ='R',
26085                              fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"),  
26086          PREC_VIS_A_VIS=SIMP(statut='f',typ='R',defaut=0.1),
26087          TOUT_ORDRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26088          NUME_ORDRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
26089          LIST_ORDRE    =SIMP(statut='f',typ=listis_sdaster),
26090          INST          =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
26091          LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),
26092              b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
26093                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
26094                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26095                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
26096                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26097                    PRECISION       =SIMP(statut='o',typ='R',),),
26098              ),
26099          INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26100          VECT_K1       =SIMP(statut='f',typ='R',max=3,min=3,
26101                              fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"),  
26102          TITRE         =SIMP(statut='f',typ='TXM',max='**'),  
26103 )  ;
26104 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26105 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26106 # ======================================================================
26107 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
26108 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26109 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26110 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26111 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26112 #
26113 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26114 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26115 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26116 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26117 #
26118 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26119 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26120 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26121 # ======================================================================
26122 # RESPONSABLE C.MESSELIER-GOUZE
26123 #
26124 POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster,
26125                    fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA",
26126                    reentrant='n',
26127             UIinfo={"groupes":("Post-traitements","Rupture",)},
26128          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
26129          MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
26130          EPAIS_REV     = SIMP(statut='o',typ='R'),
26131          FISSURE       = FACT(statut='o',
26132             DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
26133             PROFONDEUR     = SIMP(statut='o',typ='R'),
26134             LONGUEUR       = SIMP(statut='o',typ='R'),
26135             ORIENTATION    = SIMP(statut='o',typ='TXM',
26136                                  into=("CIRC","LONGI"),),
26137          ),
26138          K1D           = FACT(statut='o',max='**',
26139             TABL_MECA_REV  = SIMP(statut='o',typ=(table_sdaster)),
26140             TABL_MECA_MDB  = SIMP(statut='o',typ=(table_sdaster)),
26141             TABL_THER      = SIMP(statut='o',typ=(table_sdaster)),
26142             INTITULE       = SIMP(statut='o',typ='TXM' ), 
26143          ),
26144          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
26145 );
26146 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26147 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26148 # ======================================================================
26149 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
26150 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
26151 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
26152 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
26153 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
26154 #                                                                       
26155 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
26156 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
26157 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
26158 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
26159 #                                                                       
26160 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
26161 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
26162 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
26163 # ======================================================================
26164 # RESPONSABLE GALENNE E.GALENNE
26165
26166 from Macro.post_k_trans_ops import post_k_trans_ops
26167
26168 POST_K_TRANS=MACRO(nom="POST_K_TRANS",op=post_k_trans_ops,sd_prod=table_sdaster,
26169             fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",reentrant='n',
26170             UIinfo={"groupes":("Post-traitements","Rupture",)},
26171         RESU_TRANS      =SIMP(statut='o',typ=tran_gene), 
26172         K_MODAL         =FACT(statut='o',
26173            TABL_K_MODA     =SIMP(statut='f',typ=table_sdaster,),
26174            RESU_MODA       =SIMP(statut='f',typ=mode_meca,),
26175            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,),
26176            FISSURE         =SIMP(statut='f',typ=fiss_xfem,),
26177            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster)),
26178            R_INF           =SIMP(statut='f',typ='R'),
26179            R_SUP           =SIMP(statut='f',typ='R'),
26180            MODULE          =SIMP(statut='f',typ='R'),
26181            DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
26182            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
26183            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26184            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
26185            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26186            DEGRE           =SIMP(statut='f',typ='I',into=(0,1,2,3,4,5,6,7) ),
26187            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
26188            LISSAGE_G       =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),),
26189
26190
26191            regles=(UN_PARMI('TABL_K_MODA','RESU_MODA'),
26192                    UN_PARMI('FISSURE','FOND_FISS'),
26193                    EXCLUS('MODULE','MODULE_FO'),
26194                    PRESENT_PRESENT('R_INF','R_SUP'),
26195                    PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
26196          ),
26197         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
26198         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26199         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
26200         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
26201         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
26202         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
26203         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
26204         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26205            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
26206         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26207            PRECISION       =SIMP(statut='o',typ='R'),),
26208         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26209         TITRE           =SIMP(statut='f',typ='TXM'),
26210 )
26211
26212 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26213 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26214 # ======================================================================
26215 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
26216 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
26217 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
26218 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
26219 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
26220 #                                                                       
26221 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
26222 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
26223 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
26224 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
26225 #                                                                       
26226 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
26227 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
26228 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
26229 # ======================================================================
26230 # RESPONSABLE GENIAUT S.GENIAUT
26231 POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
26232                     reentrant='n',UIinfo={"groupes":("Maillage","Rupture",)},
26233             fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
26234     MODELE        = SIMP(statut='o',typ=modele_sdaster),
26235     MAILLAGE_SAIN = SIMP(statut='f',typ=maillage_sdaster),
26236     PREF_NOEUD_X   =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),),
26237     PREF_NOEUD_M   =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),),
26238     PREF_NOEUD_P   =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),),
26239     PREF_MAILLE_X  =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),),
26240     PREF_GROUP_CO  =SIMP(statut='f',typ=geom ,defaut="NFISSU",),
26241     TITRE         = SIMP(statut='f',typ='TXM',max='**'),
26242     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
26243
26244 );                     
26245 #& MODIF COMMANDE  DATE 02/02/2011   AUTEUR PELLET J.PELLET 
26246 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26247 # ======================================================================
26248 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
26249 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26250 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26251 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26252 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26253 #
26254 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26255 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26256 # MERCHANTABILITY OR FITNESS FOR A PARTIC               
26257 #
26258 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26259 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26260 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26261 # ======================================================================
26262 # RESPONSABLE GALENNE E.GALENNE
26263 POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster,
26264                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
26265                reentrant='n',
26266             UIinfo={"groupes":("Post-traitements","Rupture",)},
26267          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
26268          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
26269          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
26270          TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
26271
26272 # ======================================================================
26273      b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
26274
26275          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
26276                                into=("PM_PB","SN","FATIGUE_ZH210","AMORCAGE") ),
26277          MATER           =SIMP(statut='o',typ=mater_sdaster ),
26278          SY_MAX          =SIMP(statut='f',typ='R',
26279                                fr="limite élastique utilisée pour le calcul du rochet thermique" ),
26280          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
26281                                fr="Ke meca seul ou partition mecanique + thermique" ),
26282                                
26283          TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
26284            regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),
26285                    UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),),
26286            NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
26287                                  fr="nombre d occurences réelles de ce transitoire" ),
26288            TABL_RESU_MECA  =SIMP(statut='f',typ=table_sdaster,
26289                                  fr="relevé des contraintes sur le chemin"),
26290            TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
26291                                  fr="résultat sous chargement thermique seul" ),
26292            TABL_RESU_PRES  =SIMP(statut='f',typ=table_sdaster,
26293                                  fr="table relevé des contraintes sous chargement de pression" ),
26294            TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster,
26295                                  fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ),
26296            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26297            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
26298            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
26299            b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
26300                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
26301                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26302                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
26303                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26304                    PRECISION       =SIMP(statut='o',typ='R',),),),
26305            ),
26306          ),
26307
26308 # ======================================================================
26309      b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
26310
26311          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
26312                                into=("PM_PB","SN","FATIGUE") ),
26313          MATER           =SIMP(statut='o',typ=mater_sdaster ),
26314          SY_MAX          =SIMP(statut='f',typ='R',
26315                                fr="limite élastique utilisée pourle calcul du rochet thermique" ),
26316          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
26317                                fr="Ke meca seul ou partition mecanique + thermique" ),
26318          CHAR_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
26319                            regles=(UN_PARMI('MX','MX_TUBU'),),
26320            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
26321            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
26322            MX            =SIMP(statut='f',typ='R',fr="moment suivant x", ),
26323            MX_TUBU       =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
26324            b_1_tenseur     =BLOC( condition = "MX != None",
26325              FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
26326              FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
26327              FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
26328              MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
26329              MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
26330            ),
26331            b_2_tenseurs    =BLOC( condition = "MX_TUBU != None",
26332              FX_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ),
26333              FY_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ),
26334              FZ_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ),
26335              MY_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ),
26336              MZ_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ),
26337              FX_CORP       =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ),
26338              FY_CORP       =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ),
26339              FZ_CORP       =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ),
26340              MX_CORP       =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ),
26341              MY_CORP       =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ),
26342              MZ_CORP       =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ),
26343            ),
26344
26345                          ),
26346          RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
26347                               regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),),
26348            TABL_MX       =SIMP(statut='f',typ=table_sdaster,
26349                                fr="table relevé des contraintes pour chargement unitaire MX"),
26350            TABL_MX_TUBU  =SIMP(statut='f',typ=table_sdaster,
26351                                fr="table relevé des contraintes pour chargement unitaire MX_TUBU"),
26352            b_1_tenseur     =BLOC( condition = "TABL_MX != None",
26353              TABL_FX       =SIMP(statut='f',typ=table_sdaster,
26354                                  fr="table relevé des contraintes pour chargement unitaire FX"),
26355              TABL_FY       =SIMP(statut='f',typ=table_sdaster,
26356                                  fr="table relevé des contraintes pour chargement unitaire FY"),
26357              TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
26358                                  fr="table relevé des contraintes pour chargement unitaire FZ"),
26359              TABL_MY       =SIMP(statut='o',typ=table_sdaster,
26360                                  fr="table relevé des contraintes pour chargement unitaire MY"),
26361              TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
26362                                  fr="table relevé des contraintes pour chargement unitaire MZ"),
26363            ),
26364            b_2_tenseurs    =BLOC( condition = "TABL_MX_TUBU != None",
26365              TABL_FX_TUBU  =SIMP(statut='f',typ=table_sdaster,
26366                                  fr="table relevé des contraintes pour chargement unitaire FX_TUBU"),
26367              TABL_FY_TUBU  =SIMP(statut='f',typ=table_sdaster,
26368                                  fr="table relevé des contraintes pour chargement unitaire FY_TUBU"),
26369              TABL_FZ_TUBU  =SIMP(statut='f',typ=table_sdaster,
26370                                  fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"),
26371              TABL_MY_TUBU  =SIMP(statut='o',typ=table_sdaster,
26372                                  fr="table relevé des contraintes pour chargement unitaire MY_TUBU"),
26373              TABL_MZ_TUBU  =SIMP(statut='o',typ=table_sdaster,
26374                                  fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"),
26375              TABL_FX_CORP  =SIMP(statut='f',typ=table_sdaster,
26376                                  fr="table relevé des contraintes pour chargement unitaire FX_CORP"),
26377              TABL_FY_CORP  =SIMP(statut='f',typ=table_sdaster,
26378                                  fr="table relevé des contraintes pour chargement unitaire FY_CORP"),
26379              TABL_FZ_CORP  =SIMP(statut='f',typ=table_sdaster,
26380                                  fr="table relevé des contraintes pour chargement unitaire FZ_CORP"),
26381              TABL_MX_CORP  =SIMP(statut='o',typ=table_sdaster,
26382                                  fr="table relevé des contraintes pour chargement unitaire MX_CORP"),
26383              TABL_MY_CORP  =SIMP(statut='o',typ=table_sdaster,
26384                                  fr="table relevé des contraintes pour chargement unitaire MY_CORP"),
26385              TABL_MZ_CORP  =SIMP(statut='o',typ=table_sdaster,
26386                                  fr="table relevé des contraintes pour chargement unitaire MZ_CORP"),
26387            ),
26388            TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
26389                                fr="table relevé des contraintes pour chargement unitaire de pression"),
26390                          ),
26391
26392           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
26393            NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
26394            TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
26395                               fr="table relevé des contraintes sous chargement thermique seul" ),
26396                            ),
26397          SEISME         =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
26398               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
26399               NB_CYCL_SEISME   =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
26400               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
26401               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
26402               NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
26403               CHAR_ETAT        =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
26404                                ),
26405          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
26406               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
26407               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
26408               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
26409               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
26410               NUME_GROUPE      =SIMP(statut='f',typ='I',
26411                                      fr="numéros des groupes de la situation" ),
26412               NUME_PASSAGE     =SIMP(statut='f',typ='I',min=2,max=2,
26413                                      fr="numéro des situations de passage" ),
26414               NUME_RESU_THER   =SIMP(statut='f',typ='I',max=1,fr="numeros de transitoires thermiques" ),
26415               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
26416               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
26417               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
26418               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
26419               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
26420               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
26421                                ),
26422                       ),
26423 # ======================================================================
26424      b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
26425
26426          OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
26427          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
26428          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
26429                                fr="Ke meca seul ou partition mecanique + thermique" ),
26430          MODELE          =SIMP(statut='o',typ=modele_sdaster),
26431          CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
26432          ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
26433             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
26434             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26435             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26436             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26437             ),
26438          RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
26439            regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
26440            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
26441            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
26442            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
26443            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
26444            b_extrac        =BLOC(condition="RESULTAT != None",
26445                                  fr="extraction d un champ de grandeur",
26446              regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
26447              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO","SIEF_ELNO"),),
26448              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26449              NUME_ORDRE      =SIMP(statut='f',typ='I',),
26450              INST            =SIMP(statut='f',typ='R',),
26451              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
26452              b_acce_reel     =BLOC(condition="(INST != None)",
26453                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
26454                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26455                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
26456                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26457                    PRECISION       =SIMP(statut='o',typ='R',),),
26458              ),
26459            ),
26460                           ),
26461          INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
26462             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
26463             C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
26464             K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
26465             C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
26466             K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
26467             C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
26468             K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
26469             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
26470             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
26471                              fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
26472             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
26473                              fr="liste des mailles ou sont affectés les indices de contraintes"),
26474             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
26475                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26476                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26477             ),
26478             TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
26479                               fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
26480                          ),
26481           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
26482             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
26483             NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
26484             TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
26485                               fr="table relevé des températures sur la section"),
26486             TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
26487                               fr="table relevé des moyennes sur la section"),
26488             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26489             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26490             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26491             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
26492                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26493                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26494             ),
26495                            ),
26496          SEISME         =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
26497               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
26498               NB_CYCL_SEISME   =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
26499               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
26500               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
26501               NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
26502               CHAR_ETAT        =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
26503               TEMP_REF         =SIMP(statut='f',typ='R',fr="temperature référence"),
26504                                ),
26505          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
26506               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
26507               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
26508               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
26509               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
26510               NUME_GROUPE      =SIMP(statut='f',typ='I',
26511                                      fr="numéros des groupes de la situation" ),
26512               NUME_PASSAGE     =SIMP(statut='f',typ='I',min=2,max=2,
26513                                      fr="numéro des situations de passage" ),
26514               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
26515               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
26516               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
26517               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
26518               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
26519               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
26520               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
26521                                ),
26522                ),
26523 )  ;
26524 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
26525 # ======================================================================
26526 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26527 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
26528 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26529 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26530 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26531 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26532 #
26533 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26534 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26535 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26536 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26537 #
26538 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26539 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26540 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26541 # ======================================================================
26542 # RESPONSABLE DESROCHES X.DESROCHES
26543 POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f',
26544             fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)"
26545                +" ou pour les exprimer dans d'autres repères",
26546             docu="U4.81.21",UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
26547
26548          ACTION          =FACT(statut='o',max='**',
26549                                regles=(UN_PARMI('RESULTAT','CHAM_GD'),), 
26550
26551            OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","MOYENNE_ARITH","EXTREMA"),
26552            validators=NoRepeat(),max=2),
26553            INTITULE        =SIMP(statut='o',typ='TXM'),  
26554
26555            CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
26556                                                  cham_elem,),),
26557            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
26558 #
26559 #  1. Sensibilité
26560 #  1.1. Cas d'un résultat réel
26561 #       Cas d'un résultat harmonique dont on veut partie réelle ou imaginaire
26562 #
26563            b_sensibilite   =BLOC(condition=" (RESULTAT != None) and \
26564                                       (   AsType(RESULTAT) in (evol_elas,evol_ther,evol_noli,dyna_trans, \
26565                                                                mode_meca,mode_flamb,mode_acou, \
26566                                                                mult_elas,fourier_elas,fourier_ther) or \
26567                                         ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C != 'MODULE' ) )",
26568                                  fr="Définition des paramètres de sensibilité",
26569                                  ang="Definition of sensitivity parameters",
26570              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
26571                      DERIVABLE('RESULTAT'),),
26572              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
26573                                    fr="Liste des paramètres de sensibilité.",
26574                                    ang="List of sensitivity parameters"),
26575
26576            ),
26577 #
26578 #  1.2. Cas d'un résultat harmonique dont on veut le module
26579 #
26580            b_sensibilite_harmo =BLOC(condition=" (RESULTAT != None) and \
26581                                       ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C == 'MODULE' )",
26582                                      fr="Définition des paramètres de sensibilité",
26583                                      ang="Definition of sensitivity parameters",
26584              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
26585                      DERIVABLE('RESULTAT'),),
26586              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
26587                                    fr="Liste des paramètres de sensibilité.",
26588                                    ang="List of sensitivity parameters"),
26589                b_sensibilite_harmo =BLOC(condition=" SENSIBILITE != None",
26590                                          fr="Option pour la sensibilite",
26591                                          ang="Option for sensitivity",
26592                SENSIBILITE_OPTION =SIMP(statut='o',typ='TXM',into=("MODULE_SENSIBILITE","SENSIBILITE_MODULE",),
26593                                         fr="Option : module de la dérivée ou dérivée du module",
26594                                         ang="Option : modulus of derivative or derivative of modulus"),
26595                ),
26596            ),
26597
26598            b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
26599                                  regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
26600                                                 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),           
26601              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),),  
26602              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26603              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
26604              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
26605              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
26606              LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
26607              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
26608              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),  
26609              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
26610              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
26611              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
26612              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
26613              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
26614              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26615                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
26616              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26617                  PRECISION       =SIMP(statut='o',typ='R',),),
26618            ),
26619
26620            b_extrema   =BLOC(condition="OPERATION == 'EXTREMA'",
26621                              fr="recherche de MIN MAX",
26622                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
26623               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26624               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26625               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26626               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26627               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26628               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
26629               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
26630            ),
26631
26632            b_MOYENNE_ARITH   =BLOC(condition="OPERATION == 'MOYENNE_ARITH'",
26633                              fr="moyenne sur des groupes",
26634                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
26635               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26636               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26637               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26638               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26639               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26640               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
26641               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
26642            ),
26643
26644            b_autre   =BLOC(condition="OPERATION != 'EXTREMA' and OPERATION != 'MOYENNE_ARITH'",
26645                            fr="extraction et moyenne",
26646                            regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
26647                                    EXCLUS('CHEMIN','GROUP_NO'),
26648                                    EXCLUS('CHEMIN','NOEUD'),
26649                                    PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
26650                                    UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
26651                                    PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
26652                                    ENSEMBLE('MOMENT','POINT'),
26653                                    PRESENT_PRESENT('MOMENT','RESULTANTE'),
26654                                    PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
26655                                    EXCLUS('TRAC_DIR','TRAC_NOR'),
26656                                    PRESENT_PRESENT('ORIGINE','AXE_Z'),),
26657                    
26658               CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
26659               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26660               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26661               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26662               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
26663               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
26664
26665               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
26666               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
26667               INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
26668               ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26669               RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
26670
26671               MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
26672               POINT           =SIMP(statut='f',typ='R',max='**'),  
26673
26674               REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
26675                                  into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
26676               ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
26677               ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
26678               AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  
26679
26680               TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
26681               TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
26682               DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
26683  
26684               VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
26685               MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
26686            ),
26687
26688            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
26689
26690          ),
26691          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26692          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
26693 )  ;
26694 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26695 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26696 # ======================================================================
26697 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
26698 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26699 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26700 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26701 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26702 #
26703 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26704 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26705 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26706 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26707 #
26708 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26709 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26710 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26711 # ======================================================================
26712 # RESPONSABLE ZENTNER I.ZENTNER
26713 POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f',
26714             UIinfo={"groupes":("Post-traitements",)},
26715                 fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure",
26716          regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
26717                  PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
26718                  PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),),
26719          TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26720          ETAT_INIT       =FACT(statut='f',
26721            TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
26722            INST_INIT       =SIMP(statut='f',typ='R'),  
26723                          ),
26724          RESU_GENE       =SIMP(statut='f',typ=tran_gene),
26725          NOEUD           =SIMP(statut='f',typ=no,),
26726          INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
26727          INST_FIN        =SIMP(statut='f',typ='R'),  
26728          NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
26729          PUIS_USURE      =SIMP(statut='f',typ='R'),  
26730          LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
26731          b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
26732            regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), 
26733                    EXCLUS('MATER_USURE','OBSTACLE'),
26734                    EXCLUS('MOBILE','USURE_OBST'),),
26735            MOBILE          =FACT(statut='f',
26736              COEF_USURE      =SIMP(statut='o',typ='R'), 
26737            ),   
26738            OBSTACLE        =FACT(statut='f',
26739              COEF_USURE      =SIMP(statut='o',typ='R'), 
26740            ),
26741            SECTEUR         =FACT(statut='f',max='**',
26742              CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
26743                                                               "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
26744                                                               "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
26745              COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
26746              COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
26747              ANGL_INIT       =SIMP(statut='f',typ='R'),  
26748              ANGL_FIN        =SIMP(statut='f',typ='R'),  
26749            ),
26750            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
26751            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
26752          ),
26753          b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
26754            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
26755                    EXCLUS('MATER_USURE','OBSTACLE'),
26756                    EXCLUS('MOBILE','USURE_OBST'),),
26757            MOBILE          =FACT(statut='f',
26758              COEF_FNOR       =SIMP(statut='f',typ='R'),  
26759              COEF_VTAN       =SIMP(statut='f',typ='R'),  
26760              COEF_USURE      =SIMP(statut='f',typ='R'),  
26761              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
26762              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
26763            ),   
26764            OBSTACLE        =FACT(statut='f',
26765              COEF_FNOR       =SIMP(statut='f',typ='R' ),  
26766              COEF_VTAN       =SIMP(statut='f',typ='R' ),  
26767              COEF_USURE      =SIMP(statut='o',typ='R'), 
26768              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
26769              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
26770            ),   
26771            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
26772            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
26773            FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
26774            VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
26775          ),
26776          b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
26777            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
26778                    EXCLUS('MATER_USURE','OBSTACLE'),
26779                    EXCLUS('MOBILE','USURE_OBST'),),
26780            MOBILE          =FACT(statut='f',
26781              COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
26782              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
26783              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
26784              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
26785            ),   
26786            OBSTACLE        =FACT(statut='f',
26787              COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
26788              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
26789              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
26790              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
26791            ),   
26792            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
26793            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
26794          ),
26795          b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
26796             TABL_USURE      =SIMP(statut='o',typ=table_sdaster),
26797             INST            =SIMP(statut='f',typ='R'),
26798          ),
26799          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
26800                                                           "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
26801                                                           "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
26802          RAYON_MOBILE    =SIMP(statut='f',typ='R'),  
26803          RAYON_OBST      =SIMP(statut='f',typ='R'),  
26804          LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
26805          ANGL_INCLI      =SIMP(statut='f',typ='R'),  
26806          ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
26807          ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
26808          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
26809          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
26810          COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
26811          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26812          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
26813 )  ;
26814 #& MODIF COMMANDE  DATE 03/01/2011   AUTEUR COURTOIS M.COURTOIS 
26815 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26816 # ======================================================================
26817 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
26818 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26819 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26820 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26821 # (AT YOUR OPTION) ANY LATER VERSION.
26822 #
26823 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26824 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26825 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26826 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26827 #
26828 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26829 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26830 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26831 # ======================================================================
26832 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
26833
26834 POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
26835                 fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale",
26836                 sd_prod = ops.POURSUITE,
26837             UIinfo={"groupes":("Gestion du travail",)},
26838                 op_init = ops.POURSUITE_context,fichier_ini = 1,
26839          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
26840                                typ='TXM',defaut="NON",into=("OUI","NON",) ),
26841          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
26842                            into=("OUI","NON"),defaut="OUI"),
26843          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
26844                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
26845
26846          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
26847                                statut='f',min=1,max=2,
26848            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
26849            TITRE           =SIMP(statut='f',typ='TXM'),
26850            CAS             =SIMP(statut='f',typ='TXM'),
26851            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
26852            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
26853            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
26854          ),
26855
26856          IMPRESSION      =FACT(statut='f',min=1,max=3,
26857            FICHIER         =SIMP(statut='o',typ='TXM'),
26858            UNITE           =SIMP(statut='o',typ='I'),
26859          ),
26860
26861          CATALOGUE       =FACT(statut='f',min=1,max=10,
26862            FICHIER         =SIMP(statut='o',typ='TXM'),
26863            TITRE           =SIMP(statut='f',typ='TXM'),
26864            UNITE           =SIMP(statut='f',typ='I'),
26865          ),
26866
26867          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
26868            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
26869          ),
26870
26871          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
26872                                statut='f',min=1,max=1,
26873            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
26874                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
26875            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
26876                                  statut='f',typ='TXM',into=('OUI','NON')),
26877            JEVEUX          =SIMP(fr="force les déchargement sur disque",
26878                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
26879            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
26880                                  statut='f',typ='TXM',into=('TEST',)),
26881          ),
26882
26883          MESURE_TEMPS     =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes",
26884                                statut='d',min=1,max=1,
26885            NIVE_DETAIL      =SIMP(fr="niveau de détail des impressions",
26886                                  statut='f',typ='I',into=(0,1,2,3),defaut=1),
26887                                  # 0 : rien
26888                                  # 1 : impression en fin de commande des mesures principales
26889                                  # 2 : impression en fin de commande des mesures principales et secondaires
26890                                  # 3 : impression des mesures principales et secondaires pour chaque pas de temps
26891          ),
26892
26893          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
26894            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
26895            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
26896            TAILLE          =SIMP(statut='f',typ='I'),
26897            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
26898            PARTITION       =SIMP(statut='f',typ='R' ),
26899            DYNAMIQUE       =SIMP(statut='f',typ='I',defaut=1),
26900          ),
26901
26902          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
26903            regles=(EXCLUS('VALE','POURCENTAGE'),),
26904            VALE            =SIMP(statut='f',typ='I',val_min=0),
26905 #                            valeur par défaut fixée à 10. dans le FORTRAN si CODE présent
26906            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
26907 #                           valeur par défaut fixée à 10% dans le FORTRAN
26908            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900) ),
26909 #          valeur en pourcentage du temps maximum bornée à 900 secondes
26910
26911          CODE            =FACT("définition d'un nom pour l'ensemble d'une étude",
26912                                statut='f',min=1,max=1,
26913            NOM             =SIMP(statut='o',typ='TXM'),
26914          ),
26915
26916
26917          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
26918
26919          INFO     = SIMP(statut='f', typ='I', defaut=1, into=(1,2),),
26920 )  ;
26921 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26922 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26923 # ======================================================================
26924 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
26925 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26926 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26927 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26928 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26929 #
26930 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26931 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26932 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26933 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26934 #
26935 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26936 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26937 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26938 # ======================================================================
26939 # RESPONSABLE COURTOIS M.COURTOIS
26940
26941 PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
26942             UIinfo={"groupes":("Gestion du travail",)},
26943               fr="Conversion d'un fichier de maillage GIBI au format Aster",
26944          UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
26945          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
26946 )  ;
26947 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26948 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26949 # ======================================================================
26950 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
26951 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26952 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26953 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26954 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26955 #
26956 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26957 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26958 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26959 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26960 #
26961 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26962 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26963 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26964 # ======================================================================
26965 # RESPONSABLE COURTOIS M.COURTOIS
26966
26967 PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
26968             UIinfo={"groupes":("Gestion du travail",)},
26969                fr="Conversion d'un fichier de maillage GMSH au format Aster",
26970          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
26971          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
26972 )  ;
26973 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
26974 #            CONFIGURATION MANAGEMENT OF EDF VERSION
26975 # ======================================================================
26976 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
26977 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26978 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26979 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
26980 # (AT YOUR OPTION) ANY LATER VERSION.                                 
26981 #
26982 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
26983 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
26984 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
26985 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
26986 #
26987 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
26988 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
26989 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
26990 # ======================================================================
26991 # RESPONSABLE MIKCHEVITCH A.MIKCHEVITCH
26992 PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
26993             UIinfo={"groupes":("Gestion du travail",)},
26994                fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster",
26995          UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
26996          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
26997          CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
26998 )  ;
26999 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27000 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27001 # ======================================================================
27002 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27003 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27004 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27005 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27006 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27007 #
27008 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27009 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27010 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27011 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27012 #
27013 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27014 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27015 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27016 # ======================================================================
27017 # RESPONSABLE PELLET J.PELLET
27018
27019 PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster,
27020                     fr="Effectuer le produit d'une matrice par un vecteur",
27021                     reentrant='n',
27022             UIinfo={"groupes":("Post-traitements","Matrices et vecteurs",)},
27023          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
27024          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
27025          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
27026 )  ;
27027 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
27028 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27029 # ======================================================================
27030 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27031 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27032 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27033 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27034 # (AT YOUR OPTION) ANY LATER VERSION.
27035 #
27036 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27037 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27038 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27039 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27040 #
27041 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27042 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27043 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27044 # ======================================================================
27045 # RESPONSABLE PELLET J.PELLET
27046 def proj_champ_prod(RESULTAT=None,CHAM_GD=None,**args ):
27047     if (RESULTAT == None and CHAM_GD == None) : return corresp_2_mailla
27048     if  RESULTAT != None                      : return AsType(RESULTAT)
27049     if  CHAM_GD  != None                      : return AsType(CHAM_GD)
27050     raise AsException("type de concept resultat non prevu")
27051
27052
27053
27054
27055 PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
27056         UIinfo={"groupes":("Résultats et champs",)},
27057             fr="Projeter des champs d'un maillage sur un autre",
27058
27059      # faut-il projeter les champs ?
27060      PROJECTION      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),),
27061
27062      # pour projeter avec une sd_corresp_2_mailla deja calculée :
27063      MATR_PROJECTION   =SIMP(statut='f',typ=corresp_2_mailla,),
27064
27065
27066
27067      #-----------------------------------------------------------------------------------------------------------
27068      # 1er cas : on fait tout d'un coup : creation de la sd_corresp_2_mailla + projection des champs
27069      #-----------------------------------------------------------------------------------------------
27070      b_1_et_2   =BLOC(condition= "PROJECTION == 'OUI' and MATR_PROJECTION == None",
27071          regles=(UN_PARMI('RESULTAT','CHAM_GD'),
27072                  UN_PARMI('MODELE_1','MAILLAGE_1'),
27073                  UN_PARMI('MODELE_2','MAILLAGE_2'),
27074                  ),
27075          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
27076          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)),
27077
27078          METHODE         =SIMP(statut='f',typ='TXM',defaut="AUTO",
27079                                into=("NUAGE_DEG_0","NUAGE_DEG_1","AUTO","COLLOCATION","ECLA_PG",) ),
27080
27081
27082          MODELE_1        =SIMP(statut='f',typ=modele_sdaster),
27083          MAILLAGE_1      =SIMP(statut='f',typ=maillage_sdaster),
27084
27085          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
27086          MAILLAGE_2      =SIMP(statut='f',typ=maillage_sdaster),
27087
27088          # Cas de la projection NUAGE_DEG_0/1 :
27089          #--------------------------------------------
27090          b_nuage         =BLOC(condition="METHODE in ('NUAGE_DEG_0','NUAGE_DEG_1')",
27091              CHAM_NO_REFE    =SIMP(statut='o',typ=cham_no_sdaster),
27092          ),
27093
27094
27095          # Cas de la projection COLLOCATION :
27096          #--------------------------------------------
27097          b_elem          =BLOC(condition="METHODE in ('COLLOCATION','ECLA_PG','AUTO')",
27098              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",),
27099                   fr="Pour indiquer au programme le type de projection souhaité"),
27100              DISTANCE_MAX    =SIMP(statut='f',typ='R',
27101                   fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
27102
27103              TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27104                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27105                      " aux noeuds du MODELE_1 avant la projection."),
27106              TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27107                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27108                      " aux noeuds du MODELE_2 avant la projection."),
27109
27110              ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27111
27112              TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
27113                   fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
27114
27115              PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
27116                   fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."),
27117          ),
27118
27119
27120          # Cas de la projection d'une sd_resultat :
27121          #--------------------------------------------
27122          b_resultat      =BLOC(condition="RESULTAT != None",
27123            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
27124                    EXCLUS('TOUT_CHAM','NOM_CHAM',),
27125                    CONCEPT_SENSIBLE('SEPARE'),
27126                    REUSE_SENSIBLE(),
27127                    DERIVABLE('RESULTAT'),),
27128            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
27129                                fr="Liste des paramétres de sensibilité.",
27130                                ang="List of sensitivity parameters",),
27131
27132            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
27133            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27134            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
27135
27136            NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),
27137                 fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."),
27138
27139            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27140            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
27141            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
27142            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
27143            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
27144            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
27145            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
27146            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
27147            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
27148
27149            b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
27150               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
27151               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
27152                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
27153               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
27154                    PRECISION       =SIMP(statut='o',typ='R',),),
27155            ),
27156          ),
27157
27158
27159          VIS_A_VIS       =FACT(statut='f',max='**',
27160            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
27161                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
27162            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27163            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
27164            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
27165            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27166            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27167            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27168            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
27169            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
27170            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27171            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27172
27173            # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier:
27174                CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
27175                TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27176                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27177                        " aux noeuds du MODELE_1 avant la projection."),
27178                TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27179                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27180                        " aux noeuds du MODELE_2 avant la projection."),
27181          ),
27182      ), # fin bloc b_1_et_2
27183
27184
27185
27186      #-----------------------------------------------------------------------------------------------------------
27187      # 2eme cas : on s'arrete apres la creation de la sd_corresp_2_mailla
27188      #-----------------------------------------------------------------------------------------------
27189      b_1   =BLOC(condition="PROJECTION == 'NON'",
27190
27191          METHODE         =SIMP(statut='f',typ='TXM',defaut="COLLOCATION",
27192                                into=("COLLOCATION","COUPLAGE",) ),
27193
27194          regles=(UN_PARMI('MODELE_1','MAILLAGE_1'),
27195                  UN_PARMI('MODELE_2','MAILLAGE_2'),
27196                  ),
27197          MODELE_1        =SIMP(statut='f',typ=modele_sdaster),
27198          MAILLAGE_1      =SIMP(statut='f',typ=maillage_sdaster),
27199
27200          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
27201          MAILLAGE_2      =SIMP(statut='f',typ=maillage_sdaster),
27202
27203
27204          # Cas de la projection COLLOCATION :
27205          #--------------------------------------------
27206          b_elem          =BLOC(condition="METHODE in ('COLLOCATION',)",
27207              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",),
27208                   fr="Pour indiquer au programme le type de projection souhaité"),
27209              DISTANCE_MAX    =SIMP(statut='f',typ='R',
27210                   fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
27211
27212              TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27213                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27214                      " aux noeuds du MODELE_1 avant la projection."),
27215              TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27216                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27217                      " aux noeuds du MODELE_2 avant la projection."),
27218
27219              ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27220
27221          ),
27222
27223          VIS_A_VIS       =FACT(statut='f',max='**',
27224            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
27225                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
27226            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27227            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
27228            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
27229            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27230            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27231            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27232            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
27233            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
27234            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27235            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27236
27237            # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier:
27238                CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
27239                TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27240                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27241                        " aux noeuds du MODELE_1 avant la projection."),
27242                TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
27243                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
27244                        " aux noeuds du MODELE_2 avant la projection."),
27245          ),
27246      ), # fin bloc b_1
27247
27248
27249
27250      #-----------------------------------------------------------------------------------------------------------
27251      # 3eme cas : on projette les champs avec une sd_corresp_2_mailla déjé calculée
27252      #-----------------------------------------------------------------------------------------------
27253      b_2   =BLOC(condition="MATR_PROJECTION != None",
27254          regles=(UN_PARMI('RESULTAT','CHAM_GD'),),
27255          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
27256          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)),
27257
27258          TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
27259               fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
27260
27261          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),
27262               fr="Parfois utile en dynamique pour pouvoir imposer la numérotation des cham_no."),
27263
27264          # nécessaire si l'on projette des cham_elem :
27265          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
27266
27267          PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
27268               fr="Pour prolonger les champs par zéro là où la projection ne donne pas de valeurs."),
27269
27270
27271
27272          # Cas de la projection d'une sd_resultat :
27273          #--------------------------------------------
27274          b_resultat      =BLOC(condition="RESULTAT != None",
27275            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
27276                    EXCLUS('TOUT_CHAM','NOM_CHAM',),
27277                    CONCEPT_SENSIBLE('SEPARE'),
27278                    REUSE_SENSIBLE(),
27279                    DERIVABLE('RESULTAT'),),
27280            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
27281                                fr="Liste des paramétres de sensibilité.",
27282                                ang="List of sensitivity parameters",),
27283
27284            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
27285            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27286            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
27287
27288
27289            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27290            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
27291            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
27292            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
27293            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
27294            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
27295            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
27296            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
27297            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
27298
27299            b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
27300               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
27301               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
27302                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
27303               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
27304                    PRECISION       =SIMP(statut='o',typ='R',),),
27305            ),
27306
27307          ),
27308      ), # fin bloc b_2
27309
27310
27311
27312      TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
27313      INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
27314 )  ;
27315 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27316 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27317 # ======================================================================
27318 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27319 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27320 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27321 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27322 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27323 #
27324 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27325 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27326 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27327 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27328 #
27329 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27330 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27331 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27332 # ======================================================================
27333 # RESPONSABLE BOYERE E.BOYERE
27334 def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
27335   if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
27336   if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
27337   if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
27338   if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
27339   raise AsException("type de concept resultat non prevu")
27340
27341 PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
27342                     fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)",
27343                     reentrant='n',
27344             UIinfo={"groupes":("Matrices et vecteurs",)},
27345          regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
27346          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene ) ),
27347          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
27348          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
27349          MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
27350 )  ;
27351
27352 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
27353 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27354 # ======================================================================
27355 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27356 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27357 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27358 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27359 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27360 #
27361 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27362 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27363 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27364 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27365 #
27366 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27367 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27368 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27369 # ======================================================================
27370 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
27371 def proj_mesu_modal_prod(MODELE_MESURE,**args):
27372      vale=MODELE_MESURE['MESURE']
27373      if  AsType(vale) == dyna_trans   : return tran_gene
27374      if  AsType(vale) == dyna_harmo   : return harm_gene
27375      if  AsType(vale) == mode_meca    : return mode_gene
27376      if  AsType(vale) == mode_meca_c  : return mode_gene
27377 #     if  AsType(vale) == base_modale  : return mode_gene
27378      raise AsException("type de concept resultat non prevu")
27379
27380 PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
27381                      sd_prod=proj_mesu_modal_prod,
27382                      reentrant='n',
27383             UIinfo={"groupes":("Résultats et champs",)},
27384                      fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection",
27385
27386          MODELE_CALCUL   =FACT(statut='o',
27387            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
27388 #           BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),          
27389            BASE            =SIMP(statut='o',typ= mode_meca, ),
27390                          ),
27391          MODELE_MESURE   =FACT(statut='o',
27392            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
27393 #           MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
27394            MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ),
27395            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE",
27396                                  "SIEF_NOEU","EPSI_NOEU",),max='**'),
27397                          ),
27398          CORR_MANU       =FACT(statut='f',max='**',
27399            regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
27400            NOEU_CALCUL     =SIMP(statut='f',typ=no),
27401            NOEU_MESURE     =SIMP(statut='f',typ=no),
27402                          ),
27403          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
27404          RESOLUTION      =FACT(statut='f',
27405            METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
27406            b_svd =BLOC(condition="METHODE=='SVD'",
27407                        EPS=SIMP(statut='f',typ='R',defaut=0. ),
27408                       ),
27409            REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
27410            b_regul =BLOC(condition="REGUL!='NON'",
27411                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
27412                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
27413                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
27414                         ),
27415              ),
27416
27417           ); 
27418 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27419 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27420 # ======================================================================
27421 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27422 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27423 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27424 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27425 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27426 #
27427 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27428 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27429 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27430 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27431 #
27432 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27433 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27434 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27435 # ======================================================================
27436 # RESPONSABLE ADOBES A.ADOBES
27437 PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n',
27438             UIinfo={"groupes":("Matrices et vecteurs",)},
27439             fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ",
27440       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),),
27441          SPEC_TURB       =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ),
27442          TOUT_CMP        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
27443          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
27444          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
27445          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
27446          FREQ_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
27447          FREQ_FIN        =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
27448          NB_POIN         =SIMP(statut='o',typ='I' ),  
27449          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
27450          GROUP_MA        =SIMP(statut='f',typ=grma),
27451 #  Quel est le type attendu derriere  MODELE_INTERFACE         
27452          MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
27453          VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),  
27454          VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),  
27455          ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
27456          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
27457 )  ;
27458 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27459 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27460 # ======================================================================
27461 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27462 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27463 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27464 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27465 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27466 #
27467 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27468 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27469 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27470 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27471 #
27472 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27473 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27474 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27475 # ======================================================================
27476 # RESPONSABLE BOYERE E.BOYERE
27477
27478 PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
27479                     fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)",
27480                     reentrant='n',
27481             UIinfo={"groupes":("Matrices et vecteurs",)},
27482          regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
27483          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene) ),
27484          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
27485          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
27486          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
27487          VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
27488 )  ;
27489 #& MODIF COMMANDE  DATE 04/05/2011   AUTEUR MACOCCO K.MACOCCO 
27490 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27491 # ======================================================================
27492 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27493 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
27494 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
27495 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
27496 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
27497 #                                                                       
27498 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
27499 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
27500 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
27501 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
27502 #                                                                       
27503 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
27504 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
27505 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
27506 # ======================================================================
27507 # RESPONSABLE GALENNE E.GALENNE
27508
27509
27510 from Macro.propa_fiss_ops import propa_fiss_ops
27511
27512 def propa_fiss_prod(self,**args):
27513   if  args.has_key('MAIL_TOTAL')  : 
27514       MAIL_TOTAL = args['MAIL_TOTAL']
27515       self.type_sdprod(MAIL_TOTAL,maillage_sdaster)
27516   if  args.has_key('MAIL_FISS')  : 
27517       MAIL_FISS = args['MAIL_FISS']
27518       self.type_sdprod(MAIL_FISS,maillage_sdaster)
27519   if args.has_key('FISSURE') :
27520       FISSURE = args['FISSURE']
27521       for numfis in FISSURE :
27522         if (args['METHODE_PROPA']=='MAILLAGE') :
27523           self.type_sdprod(numfis['MAIL_PROPAGE'],maillage_sdaster)
27524         else :
27525           self.type_sdprod(numfis['FISS_PROPAGEE'],fiss_xfem)
27526   return None
27527
27528 PROPA_FISS=MACRO(nom="PROPA_FISS",op=propa_fiss_ops,sd_prod=propa_fiss_prod,
27529             fr="Propagation de fissure avec X-FEM",reentrant='n',
27530             UIinfo={"groupes":("Post-traitements","Rupture",)},
27531
27532         METHODE_PROPA = SIMP(statut='o',typ='TXM',
27533                                into=("SIMPLEXE","UPWIND","MAILLAGE","INITIALISATION") ),
27534             
27535         b_hamilton = BLOC(condition="(METHODE_PROPA=='SIMPLEXE') or (METHODE_PROPA=='UPWIND') ",
27536               MODELE        = SIMP(statut='o',typ=modele_sdaster),
27537               TEST_MAIL     = SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"),
27538               DA_MAX        = SIMP(statut='o',typ='R',max=1),
27539               RAYON         = SIMP(statut='o',typ='R',),
27540               ZONE_MAJ      = SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"),
27541               b_tore        = BLOC(condition = "ZONE_MAJ == 'TORE' ",
27542                                    RAYON_TORE    = SIMP(statut='f',typ='R',max=1,val_min=0.0),
27543                                   ),
27544               b_propagation = BLOC(condition = "TEST_MAIL == 'NON' ",
27545                                    FISSURE   = FACT(statut='o',min=1,max='**',
27546                                                     FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
27547                                                     FISS_PROPAGEE  = SIMP(statut='o',typ=CO,max=1),
27548                                                     NB_POINT_FOND  = SIMP(statut='f',typ='I',max='**'),
27549                                                     TABLE          = SIMP(statut='o',typ=table_sdaster,max=1),
27550                                                     ),
27551                                    LOI_PROPA = FACT(statut='o',max=1,
27552                                                     LOI     = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
27553                                                     b_paris = BLOC(condition = "LOI=='PARIS'",
27554                                                                    C = SIMP(statut='o',typ='R',),
27555                                                                    N = SIMP(statut='o',typ='R',),
27556                                                                    M = SIMP(statut='o',typ='R',),
27557                                                                   ),
27558                                                     MATER = SIMP(statut='o',typ=mater_sdaster,),
27559                                                    ),
27560                                    COMP_LINE = FACT(statut='f',max=1, 
27561                                                     COEF_MULT_MINI = SIMP(statut='o',typ='R',),
27562                                                     COEF_MULT_MAXI = SIMP(statut='o',typ='R',),
27563                                                    ),
27564                                    ),
27565
27566               b_test_const  = BLOC(condition = "TEST_MAIL == 'OUI' ",
27567                                    FISSURE   = FACT(statut='o',min=1,max='**',
27568                                                     FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
27569                                                     FISS_PROPAGEE  = SIMP(statut='o',typ=CO,max=1),
27570                                                     ),
27571                                    ITERATIONS     = SIMP(statut='f',typ='I',max=1,val_min=3,defaut=5),
27572                                    TOLERANCE      = SIMP(statut='f',typ='R',max=1,val_min=0.0,val_max=100.0,defaut=5.0),
27573                                   ),
27574
27575                          ),
27576
27577         b_maillage    =BLOC(condition="(METHODE_PROPA=='MAILLAGE')",
27578                MAIL_STRUC       = SIMP(statut='o',typ=maillage_sdaster), 
27579                ITERATION      = SIMP(statut='o',typ='I',max=1),
27580                DA_MAX        = SIMP(statut='o',typ='R',max=1),
27581                
27582                FISSURE   = FACT(statut='o',min=1,max='**',
27583                                 MAIL_ACTUEL    = SIMP(statut='o',typ=maillage_sdaster,max=1),
27584                                 GROUP_MA_FOND    = SIMP(statut='f',typ=grma,defaut="FOND"), 
27585                                 GROUP_MA_FISS    = SIMP(statut='f',typ=grma,defaut="FISS"), 
27586                                 FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
27587                                 MAIL_PROPAGE  = SIMP(statut='f',typ=CO,max=1),
27588                                 TABLE          = SIMP(statut='o',typ=table_sdaster,max=1),
27589                                 DTAN_ORIG      = SIMP(statut='f',typ='R',max=3),
27590                                 DTAN_EXTR      = SIMP(statut='f',typ='R',max=3),
27591                                                     ),
27592                MAIL_TOTAL        = SIMP(statut='o',typ=CO), 
27593                COMP_LINE = FACT(statut='f',max=1, 
27594                                 COEF_MULT_MINI = SIMP(statut='o',typ='R',),
27595                                 COEF_MULT_MAXI = SIMP(statut='o',typ='R',),
27596                                                    ),
27597                                 ),      
27598                                     
27599         b_init    =BLOC(condition="(METHODE_PROPA=='INITIALISATION')",
27600                MAIL_STRUC    = SIMP(statut='o',typ=maillage_sdaster), 
27601                FORM_FISS   = SIMP(statut='o',typ='TXM', into=("DEMI_DROITE","DEMI_PLAN","ELLIPSE"), ),
27602                GROUP_MA_FOND    = SIMP(statut='f',typ=grma,defaut="FOND"), 
27603                GROUP_MA_FISS    = SIMP(statut='f',typ=grma,defaut="FISS"), 
27604                MAIL_TOTAL     = SIMP(statut='o',typ=CO), 
27605                MAIL_FISS       = SIMP(statut='f',typ=CO), 
27606              
27607                b_droite = BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",
27608                   PFON        = SIMP(statut='o',typ='R',max=3),
27609                   DTAN        = SIMP(statut='o',typ='R',min=3,max=3),
27610                ),
27611                
27612                b_plan = BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",
27613                   DTAN        = SIMP(statut='o',typ='R',min=3,max=3),
27614                   POINT_ORIG        = SIMP(statut='o',typ='R',min=3,max=3),
27615                   POINT_EXTR        = SIMP(statut='o',typ='R',min=3,max=3),
27616                   NB_POINT_FOND     = SIMP(statut='o',typ='I',),
27617                ),
27618                 
27619                b_ellipse = BLOC(condition = "FORM_FISS == 'ELLIPSE' ",
27620                   CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
27621                   DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
27622                   DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
27623                   VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
27624                   VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
27625                   ANGLE_ORIG        = SIMP(statut='o',typ='R',),
27626                   ANGLE_EXTR        = SIMP(statut='o',typ='R',),
27627                   NB_POINT_FOND     = SIMP(statut='o',typ='I',)
27628                ),   
27629              ),       
27630
27631         b_loi_et_comp_line=BLOC(condition="(METHODE_PROPA=='MAILLAGE')  ",
27632                              LOI_PROPA = FACT(statut='o',max=1,
27633                                                     LOI     = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
27634                                                     b_paris = BLOC(condition = "LOI=='PARIS'",
27635                                                                    C = SIMP(statut='o',typ='R',),
27636                                                                    N = SIMP(statut='o',typ='R',),
27637                                                                    M = SIMP(statut='o',typ='R',),
27638                                                                   ),
27639                                                     MATER = SIMP(statut='o',typ=mater_sdaster,),
27640                                                    ),
27641                               ),
27642
27643         INFO = SIMP(statut='f',typ='I',defaut=1,into=(0,1,2)),
27644 )
27645
27646 #& MODIF COMMANDE  DATE 08/03/2011   AUTEUR MASSIN P.MASSIN 
27647 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27648 # ======================================================================
27649 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27650 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
27651 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
27652 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
27653 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
27654 #                                                                       
27655 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
27656 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
27657 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
27658 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
27659 #                                                                       
27660 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
27661 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
27662 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
27663 # ======================================================================
27664 # RESPONSABLE GENIAUT S.GENIAUT
27665
27666 PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n',
27667                 UIinfo={"groupes":("Post-traitements","Rupture",)},
27668                 fr="Propagation de fissure avec X-FEM",
27669     
27670     MODELE        =SIMP(statut='o',typ=modele_sdaster),
27671
27672     TEST_MAIL     =SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"),
27673
27674     DA_MAX        =SIMP(statut='o',typ='R'),
27675
27676     FISS_PROP     =SIMP(statut='o',typ=fiss_xfem),
27677
27678     ZONE_MAJ      =SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"),
27679
27680     RAYON_TORE    =SIMP(statut='f',typ='R'),
27681
27682     LISTE_FISS    =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
27683         
27684     b_propa =BLOC( condition = "TEST_MAIL == 'NON' ",
27685                    NB_POINT_FOND =SIMP(statut='f',typ='I',min=1,max='**'),
27686                    TABLE         =SIMP(statut='o',typ=table_sdaster,min=1,max='**'),
27687                    LOI_PROPA     =FACT(statut='o',max=1,
27688                    LOI            =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
27689                    b_paris        =BLOC( condition = "LOI=='PARIS'",
27690                      C            =SIMP(statut='o',typ='R',),
27691                      N            =SIMP(statut='o',typ='R',),
27692                      M            =SIMP(statut='o',typ='R',),
27693                      E            =SIMP(statut='o',typ='R',),
27694                      NU           =SIMP(statut='o',typ='R',),),
27695                        ),
27696
27697                    COMP_LINE      =FACT(statut='f',max=1, 
27698                      COEF_MULT_MINI        =SIMP(statut='o',typ='R',),
27699                      COEF_MULT_MAXI        =SIMP(statut='o',typ='R',),
27700                        ),
27701          ),
27702
27703     b_test_mail_const =BLOC( condition = "TEST_MAIL == 'OUI' ",
27704                              FISS_INITIALE =SIMP(statut='o',typ=fiss_xfem,max=1),
27705                              DISTANCE      =SIMP(statut='o',typ='R',max=1),
27706                              TOLERANCE     =SIMP(statut='o',typ='R',max=1),
27707                            ),
27708             
27709     RAYON          =SIMP(statut='o',typ='R',),
27710           
27711     METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="UPWIND"),
27712
27713     INFO           =SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ),
27714 )  ;
27715 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27716 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27717 # ======================================================================
27718 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
27719 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
27720 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
27721 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
27722 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
27723 #                                                                       
27724 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
27725 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
27726 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
27727 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
27728 #                                                                       
27729 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
27730 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
27731 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
27732 # ======================================================================
27733 # RESPONSABLE GENIAUT S.GENIAUT
27734 from Macro.raff_xfem_ops import raff_xfem_ops
27735 RAFF_XFEM=MACRO(nom="RAFF_XFEM",op=raff_xfem_ops,sd_prod=cham_no_sdaster,
27736                    fr="Calcul de la distance au fond de fissure le plus proche",
27737                    reentrant='n',
27738             UIinfo={"groupes":("Résultats et champs","Rupture",)},
27739
27740     FISSURE       =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
27741     INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
27742 )  ;
27743 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27744 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27745 # ======================================================================
27746 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27747 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27748 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27749 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27750 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27751 #
27752 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27753 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27754 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27755 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27756 #
27757 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27758 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27759 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27760 # ======================================================================
27761 # RESPONSABLE PARROT A.PARROT
27762 RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster,
27763                      fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n',
27764             UIinfo={"groupes":("Post-traitements",)},
27765          LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
27766          RESU            =FACT(statut='o',max='**',
27767            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
27768                    AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
27769            EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
27770            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
27771            CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
27772            TEMPE           =SIMP(statut='f',typ='R' ),
27773            LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
27774            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27775            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
27776            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
27777            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
27778            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27779            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
27780            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
27781            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
27782                          ),
27783          OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
27784          CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
27785          METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
27786          INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
27787          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
27788          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
27789                        )  ;
27790 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
27791 #            CONFIGURATION MANAGEMENT OF EDF VERSION
27792 # ======================================================================
27793 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27794 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27795 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27796 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27797 # (AT YOUR OPTION) ANY LATER VERSION.
27798 #
27799 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27800 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27801 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27802 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27803 #
27804 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27805 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27806 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27807 # ======================================================================
27808 # RESPONSABLE COURTOIS M.COURTOIS
27809 def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None,
27810                        BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None,
27811                        NOM_PARA_TABL=None,**args):
27812    if AsType(RESULTAT)  == dyna_harmo or \
27813       AsType(RESU_GENE) == harm_gene or \
27814       (TABLE != None and NOM_PARA_TABL == "FONCTION_C"):
27815       return fonction_c
27816    else:
27817       return fonction_sdaster
27818
27819 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
27820                    fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre",
27821                    reentrant='f',
27822             UIinfo={"groupes":("Résultats et champs","Fonctions",)},
27823          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),),
27824
27825          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem,),),
27826          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
27827          RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
27828          TABLE           =SIMP(statut='f',typ=(table_sdaster,table_fonction)),
27829          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
27830          NAPPE           =SIMP(statut='f',typ=nappe_sdaster),
27831
27832 # ======= SENSIBILITE =================================================
27833          b_sensibilite   =BLOC(condition="RESULTAT != None",
27834                                  fr="Définition des paramètres de sensibilité",
27835                                  ang="Definition of sensitivity parameters",
27836            regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
27837                    DERIVABLE('RESULTAT'),),
27838            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
27839                                    fr="Liste des paramètres de sensibilité.",
27840                                    ang="List of sensitivity parameters"),),
27841 # ======= ACCES A LA SD RESULTAT =================================================
27842          b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
27843                           fr="acces a une SD résultat",
27844 # on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran
27845            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27846            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
27847            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
27848            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27849            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
27850            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
27851            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
27852            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
27853            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
27854            b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
27855              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
27856              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
27857                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
27858              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
27859                  PRECISION       =SIMP(statut='o',typ='R',),),
27860              INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
27861            ),
27862          ),
27863 # ======= BASE_ELAS_FLUI =================================================
27864          b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
27865                                    fr="Récupération de la fonction à partir d un concept melasflu",
27866            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
27867            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27868            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
27869            NUME_MODE       =SIMP(statut='o',typ='I' ),
27870            PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
27871            PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
27872          ),
27873
27874 # ======= TABLE =================================================
27875          b_table = BLOC ( condition = "TABLE != None",
27876                           fr="Récupération de la fonction à partir d un concept table",
27877                           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
27878                                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
27879            PARA_X        = SIMP(statut='f',typ='TXM',
27880                                  fr="1ère colonne de la table qui définit la fonction à récupérer", ),
27881            PARA_Y        = SIMP(statut='f',typ='TXM',
27882                                  fr="2ème colonne de la table qui définit la fonction à récupérer", ),
27883            #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction",
27884            NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"),
27885                                 fr="Nom du paramètre de la table contenant la fonction" ),
27886            #),
27887
27888            FILTRE        = FACT(statut='f',max='**',
27889               NOM_PARA        =SIMP(statut='o',typ='TXM' ),
27890               CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
27891                                     into=("EQ","LT","GT","NE","LE","GE","VIDE",
27892                                           "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
27893               b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
27894                  regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
27895                  VALE            =SIMP(statut='f',typ='R' ),
27896                  VALE_I          =SIMP(statut='f',typ='I' ),
27897                  VALE_C          =SIMP(statut='f',typ='C' ),
27898                  VALE_K          =SIMP(statut='f',typ='TXM' ),),
27899
27900               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
27901               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
27902            ),
27903          ),
27904
27905 # ======= RESULTAT =================================================
27906          b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
27907                          regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
27908            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
27909            NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
27910            b_cham = BLOC ( condition = "NOM_CHAM != None",
27911                            regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
27912                                    PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
27913                                    PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
27914                                    EXCLUS('GROUP_MA','MAILLE'),
27915                                    EXCLUS('GROUP_NO','NOEUD'),),
27916              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
27917              MAILLE          =SIMP(statut='f',typ=ma),
27918              GROUP_MA        =SIMP(statut='f',typ=grma),
27919              NOEUD           =SIMP(statut='f',typ=no),
27920              GROUP_NO        =SIMP(statut='f',typ=grno),
27921              POINT           =SIMP(statut='f',typ='I' ),
27922              SOUS_POINT      =SIMP(statut='f',typ='I' ),
27923            ),
27924          ),
27925
27926 # ======= RESU_GENE =================================================
27927          b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene",
27928                               fr="Récupération d'une fonction à partir d un concept TRAN_GENE",
27929                               regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),),
27930              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
27931              NOEUD_CHOC      =SIMP(statut='f',typ=no),
27932              GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
27933            b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')",
27934                            regles=(UN_PARMI('GROUP_NO','NOEUD','NUME_CMP_GENE',),
27935                                    UN_PARMI('NOM_CMP','NUME_CMP_GENE',),
27936                                    EXCLUS('MULT_APPUI','CORR_STAT'),),
27937              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
27938              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
27939              NOEUD           =SIMP(statut='f',typ=no),
27940              GROUP_NO        =SIMP(statut='f',typ=grno),
27941              MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27942              CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
27943              ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
27944            ),
27945            b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)",
27946                            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),),
27947              PARA_X          =SIMP(statut='o',typ='TXM',
27948                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
27949              PARA_Y          =SIMP(statut='o',typ='TXM',
27950                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
27951              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
27952              INTITULE        =SIMP(statut='f',typ='TXM' ),
27953              SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
27954            ),
27955          ),
27956          b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
27957                               fr="Récupération d'une fonction à partir d un concept HARM_GENE",
27958                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
27959              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
27960              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
27961            b_cham = BLOC ( condition = "NOM_CHAM != None",
27962                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
27963              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
27964              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
27965              b_cmp = BLOC ( condition = "NOM_CMP != None",
27966                             regles=(UN_PARMI('NOEUD','GROUP_NO'),),
27967                NOEUD         =SIMP(statut='f',typ=no),
27968                GROUP_NO      =SIMP(statut='f',typ=grno),
27969              ),
27970            ),
27971          ),
27972          b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene",
27973                               fr="Récupération d'une fonction à partir d un concept MODE_GENE",
27974                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
27975              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
27976              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
27977            b_cham = BLOC ( condition = "NOM_CHAM != None",
27978                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
27979              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
27980              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
27981              b_cmp = BLOC ( condition = "NOM_CMP != None",
27982                             regles=(UN_PARMI('NOEUD','GROUP_NO'),
27983                                     UN_PARMI('SQUELETTE','SOUS_STRUC'),),
27984                NOEUD         =SIMP(statut='f',typ=no),
27985                GROUP_NO      =SIMP(statut='f',typ=grno),
27986                SQUELETTE     =SIMP(statut='f',typ=squelette ),
27987                SOUS_STRUC    =SIMP(statut='f',typ='TXM' ),  
27988              ),
27989            ),
27990          ),
27991
27992 # ======= CHAM_GD =================================================
27993          b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
27994                             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
27995                                     PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
27996                                     PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
27997                                     EXCLUS('GROUP_MA','MAILLE'),
27998                                     EXCLUS('GROUP_NO','NOEUD'),),
27999            NOM_CMP         =SIMP(statut='o',typ='TXM' ),
28000            MAILLE          =SIMP(statut='f',typ=ma),
28001            GROUP_MA        =SIMP(statut='f',typ=grma),
28002            NOEUD           =SIMP(statut='f',typ=no),
28003            GROUP_NO        =SIMP(statut='f',typ=grno),
28004            POINT           =SIMP(statut='f',typ='I' ),
28005            SOUS_POINT      =SIMP(statut='f',typ='I' ),
28006          ),
28007
28008 # ======= NAPPE =================================================
28009          b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE",
28010          VALE_PARA_FONC  =SIMP(statut='o',typ='R' ),
28011          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
28012          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
28013          ),
28014
28015 # ======= SURCHARGE DES ATTRIBUTS =================================================
28016          NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
28017          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
28018          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
28019          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
28020          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
28021
28022          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28023          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
28024 )  ;
28025 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28026 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28027 # ======================================================================
28028 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
28029 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28030 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28031 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28032 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28033 #
28034 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28035 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28036 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28037 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28038 #
28039 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28040 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28041 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28042 # ======================================================================
28043 # RESPONSABLE BOYERE E.BOYERE
28044 RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
28045             UIinfo={"groupes":("Résultats et champs",)},
28046                fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
28047                   +" en coordonnées généralisées",
28048          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
28049          INST            =SIMP(statut='o',typ='R' ),
28050          NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
28051          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
28052          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
28053          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28054              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28055          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28056              PRECISION       =SIMP(statut='o',typ='R',),),
28057 )  ;
28058 #& MODIF COMMANDE  DATE 14/02/2011   AUTEUR GREFFET N.GREFFET 
28059 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28060 # ======================================================================
28061 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28062 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28063 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28064 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28065 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28066 #                                                                       
28067 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28068 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28069 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28070 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28071 #                                                                       
28072 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28073 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28074 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28075 # ======================================================================
28076 # RESPONSABLE GREFFET N.GREFFET
28077 #
28078 # RECUPERATION DE PARAMETRES DE COUPLAGE VIA YACS
28079
28080 RECU_PARA_YACS=OPER(nom="RECU_PARA_YACS",op=114,sd_prod=listr8_sdaster,
28081                    reentrant = 'n',
28082                     UIinfo={"groupes":("Fonction",)},
28083                    fr        = "Gestion des scalaires via YACS pour le coupleur IFS",
28084           DONNEES = SIMP(statut='o',typ='TXM',into=("INITIALISATION","CONVERGENCE","FIN","PAS",) ),
28085           b_init   = BLOC(condition= "DONNEES=='INITIALISATION'",
28086                      PAS             = SIMP(statut='o',typ='R', ),),
28087           b_noinit = BLOC(condition= "(DONNEES=='CONVERGENCE')or(DONNEES=='FIN')",
28088                      NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
28089                      INST         = SIMP(statut='o',typ='R', ),
28090                      PAS             = SIMP(statut='o',typ='R', ),),
28091           b_pastps = BLOC(condition= "(DONNEES=='PAS')",
28092                      NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
28093                      INST         = SIMP(statut='o',typ='R', ),
28094                      PAS             = SIMP(statut='o',typ='R', ),),
28095          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
28096          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28097 );
28098 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28099 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28100 # ======================================================================
28101 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
28102 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28103 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28104 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28105 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28106 #
28107 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28108 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28109 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28110 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28111 #
28112 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28113 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28114 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28115 # ======================================================================
28116 # RESPONSABLE COURTOIS M.COURTOIS
28117 RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
28118          fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
28119             +" dans une autre SD pour celles qui le permettent",
28120          UIinfo={"groupes":("Résultats et champs","Tables",)},reentrant='n',
28121          CO              =SIMP(statut='o',typ=assd),
28122          regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
28123          NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
28124          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
28125          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
28126 )  ;
28127 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28128 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28129 # ======================================================================
28130 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
28131 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28132 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28133 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28134 # (AT YOUR OPTION) ANY LATER VERSION.
28135 #
28136 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28137 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28138 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28139 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28140 #
28141 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28142 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28143 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28144 # ======================================================================
28145 # RESPONSABLE PELLET J.PELLET
28146
28147 RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f',
28148                fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+
28149                   "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
28150                UIinfo={"groupes":("Résolution",)},
28151          MATR           =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
28152                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
28153          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
28154          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
28155
28156          # mot-clé commun aux solveurs MUMPS, GCPC et PETSc:
28157          RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
28158          
28159          # mot-clé pour les posttraitements de la phase de solve de MUMPS
28160          POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
28161          
28162          # mot-clé commun aux solveurs GCPC et PETSc:
28163          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
28164          MATR_PREC       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
28165
28166          # mots-clés pour solveur PETSc:
28167          ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
28168
28169          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28170          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
28171 )  ;
28172 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
28173 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28174 # ======================================================================
28175 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28176 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28177 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28178 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28179 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28180 #                                                                       
28181 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28182 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28183 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28184 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28185 #                                                                       
28186 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28187 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28188 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28189 # ======================================================================
28190  
28191 # RESPONSABLE DEVESA G.DEVESA
28192 def rest_cond_tran_prod(RESULTAT,TYPE_RESU,**args ):
28193  
28194   if AsType(RESULTAT) == dyna_trans  : return dyna_trans
28195   if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "DYNA_TRANS") : return dyna_trans
28196   if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "EVOL_NOLI") : return evol_noli
28197
28198   raise AsException("type de concept resultat non prevu")
28199
28200 REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op=  78,sd_prod=rest_cond_tran_prod,
28201                     fr="Restituer dans la base physique des résultats issus d'un calcul" 
28202                         +"non-lineaire avec projection modale ou d'un calcul transitoire linear"
28203                         +"avec condensation dynamique",
28204                     reentrant='f',
28205             UIinfo={"groupes":("Matrices et vecteurs",)},
28206         regles=(
28207                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
28208                 EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),),
28209          RESULTAT        =SIMP(statut='f',typ=(evol_noli,dyna_trans) ),
28210          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNA_TRANS",
28211                           into=("DYNA_TRANS","EVOL_NOLI") ),
28212          BASE_MODALE     =SIMP(statut='f',typ=mode_meca),
28213 #         NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
28214          MACR_ELEM_DYNA  =SIMP(statut='f',typ=macr_elem_dyna),
28215          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28216          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
28217          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
28218          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28219          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
28220          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
28221          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28222              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28223          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28224              PRECISION       =SIMP(statut='o',typ='R',),),
28225          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
28226          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28227          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
28228              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,defaut="ACCE",into=("DEPL",
28229                                    "VITE","ACCE",),),),
28230          b_base_moda=BLOC(condition="BASE_MODALE != None",
28231              CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
28232              CARA_ELEM       =SIMP(statut='f',typ=cara_elem),),
28233              RESU_FINAL      =SIMP(statut='f',typ=(evol_noli,dyna_trans) ),
28234          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
28235 )  ;
28236 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
28237 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28238 # ======================================================================
28239 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28240 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28241 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28242 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28243 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28244 #                                                                       
28245 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28246 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28247 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28248 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28249 #                                                                       
28250 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28251 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28252 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28253 # ======================================================================
28254
28255 # RESPONSABLE BOYERE E.BOYERE
28256
28257 def rest_gene_phys_prod(RESU_GENE,**args ):
28258   if AsType(RESU_GENE) == tran_gene : return dyna_trans
28259   if AsType(RESU_GENE) == mode_gene : return mode_meca
28260   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
28261   
28262   raise AsException("type de concept resultat non prevu")
28263
28264 REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op=  75,sd_prod=rest_gene_phys_prod,
28265                     fr="Restituer dans la base physique des résultats en coordonnées généralisées",
28266                     reentrant='n',
28267             UIinfo={"groupes":("Matrices et vecteurs",)},
28268         regles=(
28269                 EXCLUS('INST','LIST_INST','TOUT_INST',
28270                        'TOUT_ORDRE','NUME_ORDRE','NUME_MODE',),
28271                 EXCLUS('FREQ','LIST_FREQ'),
28272                 EXCLUS('MULT_APPUI','CORR_STAT'),
28273                 EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
28274                 EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
28275                 EXCLUS('NOEUD','GROUP_NO'),
28276                 EXCLUS('MAILLE','GROUP_MA'),
28277                 PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
28278          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,harm_gene) ), 
28279          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
28280          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
28281          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28282          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), 
28283          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
28284          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28285          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
28286          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), 
28287          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
28288          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
28289          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
28290          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28291              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28292          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28293              PRECISION       =SIMP(statut='o',typ='R',),),
28294          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
28295          MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28296          CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28297          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28298          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
28299              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL",
28300                                    "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",),),),
28301          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
28302          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
28303          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28304          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
28305          ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
28306          DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
28307          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
28308 )  ;
28309 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
28310 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28311 # ======================================================================
28312 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28313 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28314 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28315 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28316 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28317 #                                                                       
28318 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28319 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28320 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28321 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28322 #                                                                       
28323 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28324 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28325 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28326 # ======================================================================
28327
28328 # RESPONSABLE CORUS M.CORUS
28329 def rest_sous_struc_prod(RESU_GENE,RESULTAT,**args ):
28330   if AsType(RESU_GENE) == tran_gene : return dyna_trans
28331   if AsType(RESU_GENE) == mode_gene : return mode_meca
28332   if AsType(RESU_GENE) == mode_cycl : return mode_meca
28333   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
28334   if AsType(RESULTAT)  == evol_noli      : return evol_noli
28335   if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
28336   if AsType(RESULTAT)  == mode_meca      : return mode_meca
28337   raise AsException("type de concept resultat non prevu")
28338
28339 REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op=  77,sd_prod=rest_sous_struc_prod,
28340           fr="Restituer dans la base physique des résultats obtenus par sous-structuration",
28341                     reentrant='n',
28342             UIinfo={"groupes":("Matrices et vecteurs",)},
28343         regles=(UN_PARMI('RESU_GENE','RESULTAT'),
28344 # ajout d'une regle de Ionel et Nicolas:
28345 #                UN_PARMI('NOM_CHAM','TOUT_CHAM'),
28346 #
28347               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST','NUME_MODE',
28348                      'FREQ', 'LIST_FREQ'),
28349 #  Doc U à revoir
28350               EXCLUS('NOEUD','GROUP_NO'),
28351               EXCLUS('MAILLE','GROUP_MA'),
28352               PRESENT_PRESENT('RESULTAT','SQUELETTE'),
28353               UN_PARMI('SQUELETTE','SOUS_STRUC','SECTEUR'),
28354
28355                 ),
28356          RESULTAT        =SIMP(statut='f',typ=(evol_noli,dyna_trans,
28357                                             mode_meca) ),
28358          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
28359          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
28360          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
28361          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28362          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
28363          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
28364          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28365          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
28366          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
28367          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
28368          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
28369          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
28370          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28371              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28372          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28373              PRECISION       =SIMP(statut='o',typ='R',),),
28374          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
28375          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28376          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
28377              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL",
28378                                    "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",) ),),
28379          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
28380          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
28381          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28382          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
28383          CYCLIQUE    =FACT(statut='f',max='**',
28384            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
28385            NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
28386            RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
28387                                                mode_meca) ),
28388          ),
28389
28390          SQUELETTE       =SIMP(statut='f',typ=squelette ),
28391          SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
28392          SECTEUR         =SIMP(statut='f',typ='I'),  
28393          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
28394 )  ;
28395 #& MODIF COMMANDE  DATE 29/03/2011   AUTEUR DELMAS J.DELMAS 
28396 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28397 # ======================================================================
28398 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28402 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28403 #
28404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28408 #
28409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28412 # ======================================================================
28413 # RESPONSABLE ADOBES A.ADOBES
28414 REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction,
28415                     reentrant='n',
28416             fr="Calculer la réponse d'une structure dans la base physique",
28417             UIinfo={"groupes":("Matrices et vecteurs",)},
28418          regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),        
28419          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
28420          MODE_MECA       =SIMP(statut='f',typ=mode_meca,),
28421          BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
28422          NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),
28423          TOUT_ORDRE       =SIMP(statut='f',typ='TXM',defaut="NON",  into=("OUI","NON")  ),
28424          INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
28425          NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
28426          MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
28427          NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
28428          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,into=("DEPL",
28429                                "VITE","ACCE","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA") ),
28430          MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
28431          EXCIT           =FACT(statut='f',
28432            NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
28433            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
28434          ),
28435          MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
28436          OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
28437                                into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
28438          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
28439 )  ;
28440 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28441 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28442 # ======================================================================
28443 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
28444 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28445 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28446 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28447 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28448 #                                                                       
28449 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28450 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28451 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28452 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28453 #                                                                       
28454 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28455 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28456 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28457 # ======================================================================
28458 # RESPONSABLE DEVESA G.DEVESA
28459 def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args):
28460   if AsType(RESULTAT) == dyna_harmo    : return dyna_trans
28461   if AsType(RESU_GENE) == harm_gene    : return tran_gene
28462   if AsType(RESULTAT) == dyna_trans    : return dyna_harmo
28463   if AsType(RESU_GENE) == tran_gene    : return harm_gene
28464   raise AsException("type de concept resultat non prevu")
28465
28466
28467 REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod,
28468               fr="Transformée de Fourier d'un résultat",
28469               reentrant='n',
28470             UIinfo={"groupes":("Matrices et vecteurs",)},
28471          regles=UN_PARMI('RESU_GENE','RESULTAT'),
28472          RESU_GENE       =SIMP(statut='f',typ=(harm_gene,tran_gene,) ),
28473          RESULTAT        =SIMP(statut='f',typ=(dyna_harmo,dyna_trans,) ),
28474          METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ),
28475          SYMETRIE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
28476          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
28477          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
28478 );
28479 #& MODIF COMMANDE  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
28480 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28481 # ======================================================================
28482 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28483 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28484 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28485 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28486 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28487 #                                                                       
28488 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28489 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28490 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28491 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28492 #                                                                       
28493 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28494 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28495 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28496 # ======================================================================
28497 # RESPONSABLE PROIX J.M.PROIX
28498 # -*- coding: iso-8859-1 -*-
28499
28500 from Macro.simu_point_mat_ops import simu_point_mat_ops
28501
28502 SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=simu_point_mat_ops,sd_prod=table_sdaster,
28503                    UIinfo={"groupes":("Résolution",)},
28504                    fr="Calcul de l'évolution mécanique, en quasi-statique,"
28505                       +" d'un point matériel en non linéaire",
28506    COMP_INCR       =C_COMP_INCR(),
28507    COMP_ELAS       =C_COMP_ELAS('SIMU_POINT_MAT'),
28508    MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
28509    
28510 ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées.
28511    ANGLE      =SIMP(statut='f',typ='R',max=1, defaut=0.),
28512 # --MASSIF : orientation du materiau (monocristal, orthotropie)
28513    MASSIF          =FACT(statut='f',max='**',
28514      regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
28515      ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
28516      ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
28517    ),
28518    INCREMENT       =C_INCREMENT(),
28519    NEWTON          =C_NEWTON(),
28520    CONVERGENCE     =C_CONVERGENCE(),
28521       
28522    SUPPORT= SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)),
28523    
28524    b_PM = BLOC(condition="SUPPORT !=  'ELEMENT'",fr="Simulation sans élément fini",
28525       NB_VARI_TABLE  =SIMP(statut='f',typ='I',max=1,),
28526       ARCHIVAGE       =FACT(statut='f',
28527        LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
28528        INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
28529        PAS_ARCH        =SIMP(statut='f',typ='I' ),
28530        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-6),
28531                            ),
28532                ),        
28533    b_EF = BLOC(condition="SUPPORT ==  'ELEMENT'",fr="Simulation sur un élément fini",                    
28534       MODELISATION  =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN","D_PLAN",)),
28535       RECH_LINEAIRE   =C_RECH_LINEAIRE(),
28536       ARCHIVAGE       =C_ARCHIVAGE(), 
28537                  ),                                            
28538    # on permet certaines variables de commandes scalaires, définies par une fonction du temps
28539    b_EFV = BLOC(condition="SUPPORT ==  'ELEMENT'",fr="variables de commande sur un élément fini",                    
28540          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
28541          LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA",
28542                                                            "M_ACIER","M_ZIRC","NEUT1","NEUT2")),
28543
28544          AFFE_VARC    = FACT(statut='f',max='**',
28545           NOM_VARC        =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC",
28546                                                             "EPSA","NEUT1","NEUT2")),
28547           VALE_FONC   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
28548           VALE_REF    = SIMP(statut='f',typ='R'),
28549          ),
28550
28551         SIGM_IMPOSE=FACT(statut='f',
28552               SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28553               SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28554               SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28555               SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28556               SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28557               SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28558                          ),
28559         EPSI_IMPOSE=FACT(statut='f',
28560               EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28561               EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28562               EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28563               EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28564               EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28565               EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28566                          ),
28567                ),
28568    b_COEF = BLOC(condition="SUPPORT !=  'ELEMENT'",fr="matrice de coefficients",
28569      regles = (PRESENT_ABSENT('SIGM_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'),
28570                PRESENT_ABSENT('EPSI_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'),
28571                PRESENT_ABSENT('MATR_C1','SIGM_IMPOSE','EPSI_IMPOSE'),
28572                PRESENT_ABSENT('MATR_C2','SIGM_IMPOSE','EPSI_IMPOSE'),
28573                PRESENT_ABSENT('VECT_IMPO', 'SIGM_IMPOSE','EPSI_IMPOSE'),
28574      ),
28575                
28576      SIGM_IMPOSE=FACT(statut='f',
28577            SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28578            SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28579            SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28580            SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28581            SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28582            SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28583                       ),
28584      EPSI_IMPOSE=FACT(statut='f',
28585            EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28586            EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28587            EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28588            EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28589            EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28590            EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
28591                       ),
28592      MATR_C1=FACT(statut='f',max='**',
28593            VALE          =SIMP(statut='o',typ='R',max=1, ),
28594            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
28595            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
28596                               ),
28597      MATR_C2=FACT(statut='f',max='**',
28598            VALE          =SIMP(statut='o',typ='R',max=1, ),
28599            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
28600            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
28601                               ),
28602      VECT_IMPO=FACT(statut='f',max='**',
28603            VALE          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ),
28604            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
28605                               ),
28606                     ),
28607    SIGM_INIT=FACT(statut='f',
28608           SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28609           SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28610           SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28611           SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28612           SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28613           SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
28614                      ),
28615    EPSI_INIT=FACT(statut='f',
28616           EPXX = SIMP(statut='o',typ='R',max=1),
28617           EPYY = SIMP(statut='o',typ='R',max=1),
28618           EPZZ = SIMP(statut='o',typ='R',max=1),
28619           EPXY = SIMP(statut='o',typ='R',max=1),
28620           EPXZ = SIMP(statut='o',typ='R',max=1),
28621           EPYZ = SIMP(statut='o',typ='R',max=1),
28622                      ),
28623    VARI_INIT=FACT(statut='f',
28624           VALE = SIMP(statut='o',typ='R',max='**'),
28625                      ),
28626    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
28627 )
28628
28629 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28630 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28631 # ======================================================================
28632 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
28633 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28634 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28635 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28636 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28637 #                                                                       
28638 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28639 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28640 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28641 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28642 #                                                                       
28643 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28644 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28645 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28646 # ======================================================================
28647 # RESPONSABLE ASSIRE A.ASSIRE
28648
28649 from Macro.stanley_ops import stanley_ops
28650
28651 STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None,
28652                        reentrant='n',
28653               UIinfo={"groupes":("Post-traitements",)},
28654                        fr="Outil de post-traitement interactif Stanley ",
28655          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,dyna_harmo,dyna_trans) ),
28656          MODELE          =SIMP(statut='f',typ=modele_sdaster),
28657          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
28658          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
28659          DISPLAY         =SIMP(statut='f',typ='TXM'),
28660          UNITE_VALIDATION=SIMP(statut='f',typ='I',val_min=10,val_max=90,
28661                                fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
28662
28663 )  ;
28664 #& MODIF COMMANDE  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
28665 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28666 # ======================================================================
28667 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28668 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28669 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28670 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28671 # (AT YOUR OPTION) ANY LATER VERSION.
28672 #
28673 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28674 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28675 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28676 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28677 #
28678 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28679 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28680 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28681 # ======================================================================
28682 # RESPONSABLE ABBAS M.ABBAS
28683 #
28684 STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
28685                    fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
28686                       +" d'une structure en non linéaire",
28687                    reentrant='f',
28688             UIinfo={"groupes":("Résolution","Mécanique",)},
28689          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
28690                  CONCEPT_SENSIBLE('ENSEMBLE'),),
28691          MODELE          =SIMP(statut='o',typ=modele_sdaster),
28692          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
28693          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
28694          EXCIT           =FACT(statut='o',max='**',
28695            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
28696            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
28697            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
28698                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
28699          ),
28700          CONTACT         =SIMP(statut='f',typ=char_contact),
28701          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
28702                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
28703                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
28704                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28705                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
28706                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
28707               ),
28708 #-------------------------------------------------------------------               
28709          COMP_INCR       =C_COMP_INCR(),
28710 #-------------------------------------------------------------------          
28711          COMP_ELAS       =C_COMP_ELAS('STAT_NON_LINE'),
28712 #-------------------------------------------------------------------          
28713          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
28714            ETAT_INIT       =FACT(statut='o',
28715              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
28716                      EXCLUS('EVOL_NOLI','DEPL',),
28717                      EXCLUS('EVOL_NOLI','SIGM',),
28718                      EXCLUS('EVOL_NOLI','VARI',),
28719                      EXCLUS('NUME_ORDRE','INST'), ),
28720              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
28721              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
28722              VARI            =SIMP(statut='f',typ=cham_elem),
28723              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
28724              NUME_ORDRE      =SIMP(statut='f',typ='I'),
28725              INST            =SIMP(statut='f',typ='R'),
28726              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
28727              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28728                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28729              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28730                  PRECISION       =SIMP(statut='o',typ='R',),),
28731              NUME_DIDI       =SIMP(statut='f',typ='I'),
28732              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
28733          ),),
28734          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
28735            ETAT_INIT       =FACT(statut='f',
28736              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
28737                      EXCLUS('EVOL_NOLI','DEPL',),
28738                      EXCLUS('EVOL_NOLI','SIGM',),
28739                      EXCLUS('EVOL_NOLI','VARI',),
28740                      EXCLUS('NUME_ORDRE','INST'), ),
28741              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
28742              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
28743              VARI            =SIMP(statut='f',typ=cham_elem),
28744              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
28745              NUME_ORDRE      =SIMP(statut='f',typ='I'),
28746              INST            =SIMP(statut='f',typ='R'),
28747              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
28748              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28749                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28750              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28751                  PRECISION       =SIMP(statut='o',typ='R',),),
28752              NUME_DIDI       =SIMP(statut='f',typ='I'),
28753              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
28754          ),),
28755 #-------------------------------------------------------------------            
28756          INCREMENT       =C_INCREMENT(),
28757 #-------------------------------------------------------------------   
28758          METHODE         =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPL_EX")),
28759              b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'",
28760                                   NEWTON = C_NEWTON(),
28761                                   ),
28762             b_meth_impl_ex = BLOC(condition = "METHODE == 'IMPL_EX'",
28763                                   IMPL_EX = C_IMPL_EX(),
28764                           ),
28765 #-------------------------------------------------------------------    
28766          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
28767 #-------------------------------------------------------------------            
28768          PILOTAGE        =C_PILOTAGE(),
28769 #-------------------------------------------------------------------                         
28770          CONVERGENCE     =C_CONVERGENCE(),
28771 #------------------------------------------------------------------- 
28772          SOLVEUR         =C_SOLVEUR(),
28773 #-------------------------------------------------------------------
28774          OBSERVATION     =C_OBSERVATION(),
28775 #-------------------------------------------------------------------
28776          SUIVI_DDL       =C_SUIVI_DDL(),
28777 #-------------------------------------------------------------------
28778          ARCHIVAGE       =C_ARCHIVAGE(),
28779 #-------------------------------------------------------------------   
28780          AFFICHAGE      = C_AFFICHAGE(),
28781 #-------------------------------------------------------------------   
28782          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
28783            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
28784            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
28785                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
28786            RIGI_GEOM   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
28787            b_ddl_exclus=BLOC(condition="(RIGI_GEOM=='NON')",
28788               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
28789                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
28790                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
28791                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
28792                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
28793                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
28794                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
28795                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
28796                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
28797                                           'PRES31','PRES32','PRES33','VARI','LAG_GV')),),
28798            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
28799            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
28800            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
28801            PAS_CALC       = SIMP(statut='f',typ='I' ),
28802            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
28803               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28804                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28805               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28806                  PRECISION       =SIMP(statut='o',typ='R',),),
28807          ),
28808            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
28809                                fr="Liste des paramètres de sensibilité",
28810                                ang="List of sensitivity parameters"),
28811          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
28812          b_info=BLOC(condition="INFO==2",
28813                fr="filtre les messages émis dans le .mess selon le type de message demandé",
28814                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
28815                                into=("CONTACT",
28816                                      "MECA_NON_LINE",
28817                                      "PILOTAGE",
28818                                      "FACTORISATION",
28819                                      "APPARIEMENT"),
28820                              ),
28821                     ),
28822          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
28823  )
28824
28825 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR PROIX J-M.PROIX 
28826 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28827 # ======================================================================
28828 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28829 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28830 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28831 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28832 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28833 #                                                                       
28834 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28835 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28836 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28837 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28838 #                                                                       
28839 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28840 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28841 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28842 # ======================================================================
28843 # -*- coding: iso-8859-1 -*-
28844 # RESPONSABLE PROIX J.M.PROIX
28845
28846 from Macro.test_compor_ops import test_compor_ops
28847
28848 #              MACRO "TEST_THERMOPLASTIQUE"
28849 #           ----------------------------
28850
28851 TEST_COMPOR =MACRO(nom="TEST_COMPOR", op=test_compor_ops,sd_prod=table_sdaster,
28852                        docu="",reentrant='n',
28853                        fr="macro de test des comportements incrementaux dependant de la temperature",         
28854
28855          OPTION         =SIMP(statut='f',typ='TXM',into=("THER","MECA"),defaut="THER"),
28856
28857          COMP_INCR       =C_COMP_INCR(),
28858          COMP_ELAS       =C_COMP_ELAS('SIMU_POINT_MAT'),
28859          NEWTON          =C_NEWTON(),
28860          CONVERGENCE     =C_CONVERGENCE(),
28861          
28862          b_ther          =BLOC(condition = "OPTION == 'THER'",
28863             regles=(EXCLUS('C_PRAG','D_SIGM_EPSI'),),
28864             MATER           =SIMP(statut='o',typ=mater_sdaster,max=1,fr="materiau dependant de la temperature"),
28865             ALPHA           =SIMP(statut='o',typ=fonction_sdaster,
28866                                   fr="coefficient de dilatation fonction de la temperature"),
28867             YOUNG           =SIMP(statut='o',typ=fonction_sdaster,
28868                                   fr="module d'Young fonction de la temperature"),
28869             LIST_MATER      =SIMP(statut='o',typ=mater_sdaster,max='**', 
28870                                           fr="liste des materiaux constants interpolés à chaque température"),
28871             TEMP_INIT       =SIMP(statut='o',typ='R', fr="temperature initiale et de reference"),
28872             TEMP_FIN        =SIMP(statut='o',typ='R', fr="temperature finale"),
28873             INST_FIN        =SIMP(statut='f',typ='R',defaut=1.,fr="instant final"),
28874             NB_VARI         =SIMP(statut='o',typ='I', fr="nombre de variables internes - 0 en elasticité"),
28875             VARI_TEST       =SIMP(statut='f',typ='TXM',max='**', 
28876                                   fr="liste de variables internes à tester - par defaut, toutes"),
28877
28878 #           special ecrouissage cinematique
28879             D_SIGM_EPSI     =SIMP(statut='f',typ=fonction_sdaster,
28880                                   fr="module tangent fonction de la temperature- VMIS_CINE_LINE"),
28881             C_PRAG          =SIMP(statut='f',typ=fonction_sdaster,
28882                                   fr="constante de Prager fonction de la temperature- VMIS_ECMI_*"),
28883                         ),
28884          b_meca          =BLOC(condition = "OPTION == 'MECA'",
28885             LIST_MATER      =SIMP(statut='o',typ=mater_sdaster,max=2,min=2, 
28886                                           fr="liste des materiaux en Pa puis MPa "),
28887             YOUNG           =SIMP(statut='o',typ='R',fr="module d'Young"),
28888             POISSON         =SIMP(statut='o',typ='R',fr="coef de Poisson"),
28889             LIST_NPAS       =SIMP(statut='f',typ='I',max='**',
28890                                   fr="nombre de pas de temps pour chaque discretisation"),
28891             LIST_TOLE       =SIMP(statut='f',typ='R',max='**',),
28892             PREC_ZERO       =SIMP(statut='f',typ='R',max='**',),
28893             VARI_TEST       =SIMP(statut='f',typ='TXM',max='**',defaut=('V1','VMIS','TRACE'), 
28894                                   fr="liste des CMP à tester "),
28895             SUPPORT         =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)),
28896             MODELISATION    =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN"),defaut="3D",),
28897             ANGLE           =SIMP(statut='f',typ='R',max=1, defaut=0.,
28898              fr='Rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées',),
28899             MASSIF          =FACT(statut='f',max='**',fr='orientation du materiau (monocristal, orthotropie)',
28900               regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
28901               ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
28902               ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
28903                                  ),
28904                                ),
28905             INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
28906                  )
28907 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28908 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28909 # ======================================================================
28910 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
28911 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28912 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28913 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28914 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28915 #                                                                       
28916 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28917 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28918 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28919 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28920 #                                                                       
28921 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28922 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28923 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28924 # ======================================================================
28925 # RESPONSABLE COURTOIS M.COURTOIS
28926
28927 from Macro.test_fichier_ops import test_fichier_ops
28928
28929 TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
28930                    UIinfo={"groupes":("Utilitaires",)},
28931                    fr="Tester la non régression de fichiers produits par des commandes aster",
28932    FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
28933    EXPR_IGNORE      =SIMP(statut='f',typ='TXM',max='**',
28934                           fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
28935
28936    TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut='SOMM',into=("SOMM_ABS","SOMM","MAXI","MINI","MAXI_ABS","MINI_ABS")),
28937    NB_VALE         =SIMP(statut='o',typ='I',),
28938    VALE            =SIMP(statut='f',typ='R',max='**'),
28939    VALE_K          =SIMP(statut='f',typ='TXM'),
28940
28941    CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
28942    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
28943
28944    REFERENCE       =SIMP(statut='f',typ='TXM',
28945                          into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
28946
28947    b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
28948       VERSION         =SIMP(statut='f',typ='TXM' ),
28949    ),
28950
28951    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
28952 )
28953 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
28954 # -*- coding: iso-8859-1 -*-
28955 #            CONFIGURATION MANAGEMENT OF EDF VERSION
28956 # ======================================================================
28957 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
28958 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28959 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28960 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28961 # (AT YOUR OPTION) ANY LATER VERSION.
28962 #
28963 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28964 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28965 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28966 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28967 #
28968 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28969 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28970 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28971 # ======================================================================
28972 # RESPONSABLE SELLENET N.SELLENET
28973 from Macro.test_fonction_ops import test_fonction_ops
28974
28975 TEST_FONCTION=MACRO(nom="TEST_FONCTION",op=test_fonction_ops,sd_prod=None,
28976             fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
28977             UIinfo={"groupes":("Fonctions","Utilitaires",)},
28978          TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
28979          VALEUR          =FACT(statut='f',max='**',
28980                                fr="Tester la valeur d une fonction ou d une nappe",
28981            regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',),
28982                    UN_PARMI('VALE_PARA','INTERVALLE'),
28983                    DERIVABLE('FONCTION'),),
28984            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
28985            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
28986                                  fr="Paramètre de sensibilité.",
28987                                  ang="Sensitivity parameter"),
28988            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
28989            VALE_PARA       =SIMP(statut='f',typ='R'  ,validators=NoRepeat(),max=2),
28990            INTERVALLE      =SIMP(statut='f',typ='R'  ,validators=NoRepeat(),min=2,max=2),
28991            VALE_REFE       =SIMP(statut='f',typ='R',max='**' ),
28992            VALE_REFE_C     =SIMP(statut='f',typ='C',max='**' ),
28993            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
28994            LEGENDE         =SIMP(statut='f',typ='TXM'),
28995            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
28996                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
28997            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
28998                                  defaut= 1.E-3 ),
28999            REFERENCE       =SIMP(statut='f',typ='TXM',
29000                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
29001            b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'",
29002              VERSION         =SIMP(statut='f',typ='TXM' ),
29003            ),
29004          ),
29005          ATTRIBUT        =FACT(statut='f',max='**',
29006                                fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
29007            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
29008            PARA            =SIMP(statut='f',typ='R' ),
29009            CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29010            PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
29011            ATTR            =SIMP(statut='o',typ='TXM',
29012                                  into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
29013                                        "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
29014            ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
29015            REFERENCE       =SIMP(statut='f',typ='TXM',
29016                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
29017            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
29018              VERSION         =SIMP(statut='f',typ='TXM' ),
29019            ),
29020          ),
29021          TABL_INTSP      =FACT(statut='f',max='**',
29022                                fr="Tester la valeur d une fonction contenue dans une table interspectrale",
29023            regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
29024            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
29025            NOEUD_I         =SIMP(statut='f',typ=no),
29026            NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
29027            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
29028              NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
29029            ),
29030            b_noeud_i = BLOC (condition = "NOEUD_I != None",
29031              NOEUD_J         =SIMP(statut='o',typ=no),
29032              NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
29033              NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
29034            ),
29035            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
29036            VALE_PARA       =SIMP(statut='o',typ='R' ),
29037            VALE_REFE_C     =SIMP(statut='o',typ='C',max='**' ),
29038            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
29039                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29040            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
29041                                  defaut= 1.E-3 ),
29042            LEGENDE         =SIMP(statut='f',typ='TXM'),
29043            REFERENCE       =SIMP(statut='f',typ='TXM',
29044                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
29045            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
29046              VERSION         =SIMP(statut='f',typ='TXM' ),
29047            ),
29048          ),
29049 )  ;
29050 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
29051 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29052 # ======================================================================
29053 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
29054 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29055 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29056 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29057 # (AT YOUR OPTION) ANY LATER VERSION.
29058 #
29059 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29060 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29061 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29062 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29063 #
29064 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29065 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29066 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29067 #
29068 #
29069 # ======================================================================
29070 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
29071 TEST_RESU=PROC(nom="TEST_RESU",op=23,
29072             UIinfo={"groupes":("Résultats et champs","Utilitaires",)},
29073          fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
29074          regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET','TEST_NAN',)),
29075
29076          CHAM_NO         =FACT(statut='f',max='**',
29077            regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
29078                    EXCLUS('NOEUD','GROUP_NO'),
29079                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
29080                    PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
29081                    UN_PARMI('VALE','VALE_I','VALE_C'),),
29082            CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
29083            NOEUD           =SIMP(statut='f',typ=no   ),
29084            GROUP_NO        =SIMP(statut='f',typ=grno ),
29085            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
29086            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
29087            VALE            =SIMP(statut='f',typ='R',max='**'),
29088            VALE_I          =SIMP(statut='f',typ='I',max='**'),
29089            VALE_C          =SIMP(statut='f',typ='C',max='**'),
29090            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29091            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
29092            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
29093            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
29094                                                             "NON_REGRESSION","AUTRE_ASTER")),
29095            VERSION         =SIMP(statut='f',typ='TXM'),
29096            LEGENDE         =SIMP(statut='f',typ='TXM'),
29097          ),
29098
29099          CHAM_ELEM       =FACT(statut='f',max='**',
29100            regles=(UN_PARMI('MAILLE','TYPE_TEST',),
29101                    EXCLUS('NOEUD','GROUP_NO','POINT'),
29102                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
29103                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
29104                    PRESENT_PRESENT('POINT','NOM_CMP'),
29105                    UN_PARMI('VALE','VALE_I','VALE_C'), ),
29106            CHAM_GD         =SIMP(statut='o',typ=cham_elem),
29107            MAILLE          =SIMP(statut='f',typ=ma),
29108            POINT           =SIMP(statut='f',typ='I' ),
29109            SOUS_POINT      =SIMP(statut='f',typ='I'),
29110            NOEUD           =SIMP(statut='f',typ=no),
29111            GROUP_NO        =SIMP(statut='f',typ=grno),
29112            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
29113            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
29114            VALE            =SIMP(statut='f',typ='R',max='**' ),
29115            VALE_I          =SIMP(statut='f',typ='I',max='**' ),
29116            VALE_C          =SIMP(statut='f',typ='C',max='**' ),
29117            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29118            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
29119            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
29120            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
29121                                                             "NON_REGRESSION","AUTRE_ASTER") ),
29122            VERSION         =SIMP(statut='f',typ='TXM' ),
29123            LEGENDE         =SIMP(statut='f',typ='TXM'),
29124          ),
29125
29126          RESU            =FACT(statut='f',max='**',
29127            regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
29128                    UN_PARMI('NOM_CHAM','PARA'),
29129                    PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
29130                    PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
29131                    EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
29132                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
29133                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
29134                    PRESENT_PRESENT('POINT','NOM_CMP'),
29135                    UN_PARMI('VALE','VALE_I','VALE_C'),
29136                    DERIVABLE('RESULTAT'),),
29137            RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
29138            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
29139                                  fr="Paramètre de sensibilité.",
29140                                  ang="Sensitivity parameter"),
29141            NUME_ORDRE      =SIMP(statut='f',typ='I'),
29142            INST            =SIMP(statut='f',typ='R'),
29143            FREQ            =SIMP(statut='f',typ='R'),
29144            NUME_MODE       =SIMP(statut='f',typ='I'),
29145            NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
29146            NOM_CAS         =SIMP(statut='f',typ='TXM'),
29147            ANGL            =SIMP(statut='f',typ='R'),
29148            PARA            =SIMP(statut='f',typ='TXM'),
29149            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
29150            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
29151            MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
29152            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
29153            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
29154            POINT           =SIMP(statut='f',typ='I'),
29155            SOUS_POINT      =SIMP(statut='f',typ='I'),
29156            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
29157            VALE            =SIMP(statut='f',typ='R',max='**'),
29158            VALE_I          =SIMP(statut='f',typ='I',max='**'),
29159            VALE_C          =SIMP(statut='f',typ='C',max='**'),
29160            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29161            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
29162            PRECISION       =SIMP(statut='f',typ='R',max=2),
29163            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
29164                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
29165            VERSION         =SIMP(statut='f',typ='TXM' ),
29166            LEGENDE         =SIMP(statut='f',typ='TXM'),
29167          ),
29168
29169          GENE            =FACT(statut='f',max='**',
29170            regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
29171            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
29172            b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
29173              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
29174            ),
29175            b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
29176                             regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
29177                                     UN_PARMI('NOM_CHAM','PARA'),
29178                                     PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
29179              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
29180              NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
29181              PARA            =SIMP(statut='f',typ='TXM'),
29182              NUME_ORDRE      =SIMP(statut='f',typ='I'),
29183              NUME_MODE       =SIMP(statut='f',typ='I'),
29184              FREQ            =SIMP(statut='f',typ='R'),
29185            ),
29186            b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
29187                             regles=(UN_PARMI('NUME_ORDRE','INST') ,),
29188              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
29189              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
29190              NUME_ORDRE      =SIMP(statut='f',typ='I'),
29191              INST            =SIMP(statut='f',typ='R'),
29192            ),
29193            VALE            =SIMP(statut='f',typ='R',max='**'),
29194            VALE_I          =SIMP(statut='f',typ='I',max='**'),
29195            VALE_C          =SIMP(statut='f',typ='C',max='**'),
29196            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29197            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
29198            PRECISION       =SIMP(statut='f',typ='R',max=2),
29199            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
29200                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
29201            VERSION         =SIMP(statut='f',typ='TXM' ),
29202            LEGENDE         =SIMP(statut='f',typ='TXM'),
29203          ),
29204
29205          OBJET           =FACT(statut='f',max='**',
29206            regles=(UN_PARMI('S_I','S_R',),
29207                    UN_PARMI('VALE','VALE_I','VALE_C','S_R','S_I'),),
29208            NOM             =SIMP(statut='o',typ='TXM'),
29209            S_R             =SIMP(statut='f',typ='R'),
29210            S_I             =SIMP(statut='f',typ='I'),
29211            VALE            =SIMP(statut='f',typ='R'),
29212            VALE_I          =SIMP(statut='f',typ='I'),
29213            VALE_C          =SIMP(statut='f',typ='C'),
29214            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29215            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
29216            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
29217            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
29218                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
29219            VERSION         =SIMP(statut='f',typ='TXM' ),
29220            LEGENDE         =SIMP(statut='f',typ='TXM'),
29221          ),
29222
29223          TEST_NAN        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29224 )  ;
29225 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
29226 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29227 # ======================================================================
29228 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
29229 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29230 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29231 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
29232 # (AT YOUR OPTION) ANY LATER VERSION.                                 
29233 #
29234 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
29235 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
29236 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
29237 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
29238 #
29239 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
29240 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
29241 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
29242 # ======================================================================
29243 # RESPONSABLE COURTOIS M.COURTOIS
29244 TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
29245                 UIinfo={"groupes":("Tables","Utilitaires",)},
29246                 fr="Tester une cellule ou une colonne d'une table",
29247                 regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),
29248                 DERIVABLE('TABLE'),),
29249 #  concept table_sdaster à tester
29250          TABLE           =SIMP(statut='o',typ=table_sdaster),
29251
29252          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
29253                                  fr="Paramètre de sensibilité.",
29254                                  ang="Sensitivity parameter"),
29255          FILTRE          =FACT(statut='f',max='**',
29256            NOM_PARA        =SIMP(statut='o',typ='TXM' ),
29257            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
29258                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
29259                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
29260            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
29261               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
29262               VALE            =SIMP(statut='f',typ='R',),
29263               VALE_I          =SIMP(statut='f',typ='I',),
29264               VALE_C          =SIMP(statut='f',typ='C',),
29265               VALE_K          =SIMP(statut='f',typ='TXM' ),),
29266
29267            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29268            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
29269          ),
29270          TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
29271          NOM_PARA        =SIMP(statut='o',typ='TXM' ),
29272          VALE            =SIMP(statut='f',typ='R',max='**' ),
29273          VALE_I          =SIMP(statut='f',typ='I',max='**' ),
29274          VALE_C          =SIMP(statut='f',typ='C',max='**' ),
29275          VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29276          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29277          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
29278          LEGENDE         =SIMP(statut='f',typ='TXM'),
29279          REFERENCE       =SIMP(statut='f',typ='TXM',
29280                                into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
29281          b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
29282              VERSION         =SIMP(statut='f',typ='TXM' ),
29283          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
29284          ),
29285 )  ;
29286 #& MODIF COMMANDE  DATE 09/11/2010   AUTEUR DELMAS J.DELMAS 
29287 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29288 # ======================================================================
29289 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
29290 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
29291 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
29292 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
29293 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
29294 #                                                                       
29295 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
29296 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
29297 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
29298 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
29299 #                                                                       
29300 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
29301 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
29302 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
29303 # ======================================================================
29304 # -*- coding: iso-8859-1 -*-
29305 # RESPONSABLE COURTOIS M.COURTOIS
29306
29307
29308 from Macro.test_temps_ops import test_temps_ops
29309
29310 TEST_TEMPS=MACRO(nom="TEST_TEMPS",op=test_temps_ops, sd_prod=None,
29311                  UIinfo={"groupes":("Utilitaires",)},
29312                  fr="Permet de vérifier le temps passé dans les commandes",
29313                  reentrant='n',
29314
29315    RESU = FACT(statut='o',max='**',
29316       COMMANDE   = SIMP(statut='o', typ='TXM',
29317             fr="Nom de la commande testee"),
29318       NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1,
29319             fr="Numero de l'occurrence de la commande testee"),
29320       MACHINE    = SIMP(statut='o', typ='TXM', max='**',
29321             fr="Liste des machines dont on a la référence"),
29322       VALE       = SIMP(statut='o', typ='R', max='**',
29323             fr="Temps CPU sur les machines listees en secondes"),
29324       CRITERE    = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')),
29325       PRECISION  = SIMP(statut='f', typ='R', defaut=0.01, max='**',
29326             fr="Ecart admissible pour chaque machine"),
29327       TYPE_TEST  = SIMP(statut='o', typ='TXM', into=('USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'),
29328             defaut='USER+SYS',
29329             fr="Valeur testee parmi 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'"),
29330    ),
29331
29332    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
29333 )
29334
29335 #& MODIF COMMANDE  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
29336 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29337 # ======================================================================
29338 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29339 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29340 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29341 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29342 # (AT YOUR OPTION) ANY LATER VERSION.
29343 #
29344 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29345 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29346 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29347 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29348 #
29349 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29350 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29351 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29352 # ======================================================================
29353 # RESPONSABLE DURAND C.DURAND
29354 THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
29355             UIinfo={"groupes":("Résolution","Thermique",)},
29356                    fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
29357          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
29358          MODELE          =SIMP(statut='o',typ=modele_sdaster),
29359          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
29360          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
29361          EXCIT           =FACT(statut='o',max='**',
29362            CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
29363            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
29364          ),
29365          INCREMENT       =FACT(statut='f',
29366            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
29367                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
29368            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
29369            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
29370            INST_INIT       =SIMP(statut='f',typ='R'),
29371            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
29372            INST_FIN        =SIMP(statut='f',typ='R'),
29373            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
29374          ),
29375          ETAT_INIT       =FACT(statut='f',
29376            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
29377            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
29378            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
29379            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
29380            VALE            =SIMP(statut='f',typ='R'),
29381            NUME_ORDRE      =SIMP(statut='f',typ='I'),
29382            INST            =SIMP(statut='f',typ='R'),
29383            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29384            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29385               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29386            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29387               PRECISION       =SIMP(statut='o',typ='R',),),
29388            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
29389          ),
29390          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
29391                                fr="Liste des paramètres de sensibilité.",
29392                                ang="List of sensitivity parameters",
29393          ),
29394            SENS_INIT       =FACT(statut='f',
29395              regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
29396              STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29397              EVOL_THER       =SIMP(statut='f',typ=evol_ther),
29398              NUME_INIT       =SIMP(statut='f',typ='I'),
29399            ),
29400          SOLVEUR         =FACT(statut='d',
29401            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
29402            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
29403              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
29404            ),
29405            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
29406              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
29407            ),
29408            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
29409                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
29410              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
29411              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
29412            ),
29413            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
29414              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
29415              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
29416                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
29417                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29418                ),
29419              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29420                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29421                ),
29422              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29423              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
29424            ),
29425            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
29426              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
29427              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
29428              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
29429              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
29430              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
29431              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
29432              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
29433              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29434              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29435              ),
29436
29437            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
29438              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
29439              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
29440              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
29441                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
29442                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
29443                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29444              ),
29445              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29446                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29447                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29448              ),
29449              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
29450                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
29451                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29452              ),
29453              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29454              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
29455            ),
29456          ),
29457          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
29458 #-------------------------------------------------------------------
29459          ARCHIVAGE       =C_ARCHIVAGE(),         
29460 #-------------------------------------------------------------------
29461          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
29462          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
29463 )  ;
29464 #& MODIF COMMANDE  DATE 21/02/2011   AUTEUR ABBAS M.ABBAS 
29465 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29466 # ======================================================================
29467 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29468 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29469 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29470 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29471 # (AT YOUR OPTION) ANY LATER VERSION.
29472 #
29473 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29474 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29475 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29476 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29477 #
29478 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29479 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29480 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29481 # ======================================================================
29482 # RESPONSABLE DURAND C.DURAND
29483 THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
29484             UIinfo={"groupes":("Résolution","Thermique",)},
29485                    fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
29486                       +" stationnaire ou transitoire" ,
29487          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
29488          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
29489          CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
29490          CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
29491          COMP_THER_NL    =FACT(statut='d',max='**',
29492            RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
29493                                  into=("THER_NL",
29494                                        "THER_HYDR",
29495                                        "SECH_GRANGER",
29496                                        "SECH_MENSI",
29497                                        "SECH_BAZANT",
29498                                        "SECH_NAPPE"
29499                                        ) ),
29500          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
29501            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29502            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29503            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29504          ),
29505          EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
29506          EXCIT           =FACT(statut='o',max='**',
29507            CHARGE          =SIMP(statut='o',typ=char_ther),
29508            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
29509          ),
29510          INCREMENT       =FACT(statut='f',
29511            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
29512                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
29513            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
29514            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
29515            INST_INIT       =SIMP(statut='f',typ='R'),
29516            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
29517            INST_FIN        =SIMP(statut='f',typ='R'),
29518            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
29519          ),
29520          ETAT_INIT       =FACT(statut='f',
29521            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
29522            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
29523            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
29524            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
29525            VALE            =SIMP(statut='f',typ='R'),
29526            NUME_ORDRE      =SIMP(statut='f',typ='I'),
29527            INST            =SIMP(statut='f',typ='R'),
29528            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
29529            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29530               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29531            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29532               PRECISION       =SIMP(statut='o',typ='R',),),
29533            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
29534          ),
29535          NEWTON          =FACT(statut='d',
29536            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ,val_min=0),
29537            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
29538            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
29539          ),
29540          CONVERGENCE     =FACT(statut='d',
29541            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
29542            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
29543            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
29544          ),
29545          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
29546                                fr="Liste des paramètres de sensibilité.",
29547                                ang="List of sensitivity parameters",
29548          ),
29549          SOLVEUR         =FACT(statut='d',
29550            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
29551            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
29552              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
29553            ),
29554            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
29555              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
29556            ),
29557            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
29558                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
29559              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
29560              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
29561            ),
29562            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
29563              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
29564              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
29565                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
29566                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29567                ),
29568              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29569                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29570                ),
29571              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29572              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
29573            ),
29574            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
29575              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
29576              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
29577              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),           
29578              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO","SCOTCH",)),
29579              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
29580              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
29581              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
29582              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29583              FILTRAGE_MATRICE=SIMP(statut='f',typ='R',defaut=-1.0,),
29584              MIXER_PRECISION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29585              LIBERE_MEMOIRE  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29586              ),
29587
29588            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
29589              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
29590              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
29591              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
29592                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
29593                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
29594                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29595              ),
29596              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29597                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29598                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29599              ),
29600              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
29601                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
29602                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29603              ),
29604              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29605              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
29606            ),
29607            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
29608          ),
29609          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
29610 #-------------------------------------------------------------------
29611          ARCHIVAGE       =C_ARCHIVAGE(),
29612 #-------------------------------------------------------------------
29613          OBSERVATION     =C_OBSERVATION(),
29614 #------------------------------------------------------------------- 
29615          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
29616          OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
29617                                into=("FLUX_ELGA","FLUX_ELNO") ),
29618          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
29619
29620 )  ;
29621 #& MODIF COMMANDE  DATE 08/02/2011   AUTEUR TARDIEU N.TARDIEU 
29622 #            CONFIGURATION MANAGEMENT OF EDF VERSION
29623 # ======================================================================
29624 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29625 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29626 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29627 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29628 # (AT YOUR OPTION) ANY LATER VERSION.
29629 #
29630 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29631 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29632 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29633 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29634 #
29635 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29636 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29637 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29638 # ======================================================================
29639 # RESPONSABLE DURAND C.DURAND
29640 THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
29641                      fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
29642                         +" stationnaire avec chargement mobile",
29643                      reentrant='n',
29644             UIinfo={"groupes":("Résolution","Thermique",)},
29645          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
29646          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
29647          CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
29648          EXCIT           =FACT(statut='o',max='**',
29649            CHARGE          =SIMP(statut='o',typ=char_ther ),
29650            FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
29651          ),
29652          ETAT_INIT       =FACT(statut='f',
29653            EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
29654            NUME_ORDRE      =SIMP(statut='f',typ='I',defaut= 0 ),
29655          ),
29656          CONVERGENCE     =FACT(statut='d',
29657            CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
29658            CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
29659            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
29660            ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
29661          ),
29662          SOLVEUR         =FACT(statut='d',
29663            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
29664            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
29665              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
29666            ),
29667            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
29668              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
29669            ),
29670            b_ldlt_mult_mumps =BLOC( condition = "METHODE=='LDLT' or METHODE=='MULT_FRONT' or METHODE=='MUMPS' ",
29671                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
29672              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
29673              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
29674            ),
29675            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
29676              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","LDLT_SP",),defaut="LDLT_INC" ),
29677              b_ldltinc       =BLOC(condition = "PRE_COND == 'LDLT_INC' ", fr="Paramètres de la factorisation incomplète",
29678                NIVE_REMPLISSAGE    =SIMP(statut='f',typ='I',defaut= 0 ),
29679                RENUM               =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29680                ),
29681              b_simple        =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29682                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29683                ),
29684              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29685              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
29686            ),
29687            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
29688              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
29689              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
29690              POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),             
29691              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
29692              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
29693              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
29694              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
29695              OUT_OF_CORE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29696              LIBERE_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
29697              ),
29698            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
29699              ALGORITHME      =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
29700              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
29701              b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
29702                NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
29703                REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
29704                RENUM            =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
29705              ),
29706              b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
29707                REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
29708                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29709              ),
29710              b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'", 
29711                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
29712                RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
29713              ),
29714              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
29715              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
29716            ),
29717            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
29718          ),
29719          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
29720          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
29721 )  ;
29722
29723
29724