]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/petitcata/cata.py
Salome HOME
CCAR : quelques modifs sur convertisseur python (liste de MCFACT)
[tools/eficas.git] / Aster / Cata / petitcata / cata.py
1 # -*- coding: utf-8 -*-
2 #& MODIF ENTETE  DATE 18/03/2003   AUTEUR MCOURTOI M.COURTOIS 
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9 # (AT YOUR OPTION) ANY LATER VERSION.                                 
10 #
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15 #
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19 # ======================================================================
20 import Accas
21 from Accas import *
22 from Accas import _F
23 import string
24
25 import ops
26
27 try:
28   import aster
29 except:
30   pass
31
32 #
33 __version__="$Name:  $"
34 __Id__="$Id: cata_reduit.py,v 1.6 2004/09/20 09:24:11 eficas Exp $"
35 #
36 JdC = JDC_CATA(code='ASTER',
37                execmodul=None,
38                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
39                          AU_MOINS_UN('FIN'),
40                          A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
41 # Type le plus general
42 class entier  (ASSD):pass
43 class reel    (ASSD):pass
44 class complexe(ASSD):pass
45 class chaine  (ASSD):pass
46
47
48 # Type geometriques
49 class no  (GEOM):pass
50 class grno(GEOM):pass
51 class ma  (GEOM):pass
52 class grma(GEOM):pass
53
54
55
56 # Autres
57
58 class cabl_precont    (ASSD):pass
59 class cara_elem       (ASSD):pass
60 class cara_pout       (ASSD):pass
61 class cham_mater      (ASSD):pass
62 class char_acou       (ASSD):pass
63 class char_cine_acou  (ASSD):pass
64 class char_cine_meca  (ASSD):pass
65 class char_cine_ther  (ASSD):pass
66 class char_meca       (ASSD):pass
67 class char_ther       (ASSD):pass
68 class courbe          (ASSD):pass
69 class fond_fiss       (ASSD):pass
70 class interf_dyna_clas(ASSD):pass
71 class interspfact     (ASSD):pass
72 class listis          (ASSD):pass
73 class liste           (ASSD):pass
74 class macr_elem_dyna  (ASSD):pass
75 class macr_elem_stat  (ASSD):pass
76 class mater           (ASSD):pass
77 class melasflu        (ASSD):pass
78 class modele          (ASSD):pass
79 class modele_gene     (ASSD):pass
80 class nume_ddl        (ASSD):pass
81 class nume_ddl_gene   (ASSD):pass
82 class obstacle        (ASSD):pass
83 class spectre         (ASSD):pass
84 class surface         (ASSD):pass
85 class tran_gene       (ASSD):pass
86 class type_flui_stru  (ASSD):pass
87 class valeur          (ASSD):pass
88
89
90 # liste :
91 #--------------------------------
92 class listr8   (ASSD):
93   def LIST_VALEURS(self) :
94     """ retourne la liste des valeurs [ val1, ...] """
95     vale=string.ljust(self.get_name(),19)+'.VALE'
96     return list(aster.getvectjev(vale))
97    
98
99
100 # maillage :
101 #--------------------------------
102 class maillage(ASSD):
103   def LIST_GROUP_NO(self) :
104     """ retourne la liste des groupes de noeuds sous la forme :
105         [ (gno1, nb noeuds  gno1), ...] """
106     return aster.GetMaillage(self.get_name(), "GROUP_NO")
107   def LIST_GROUP_MA(self) :
108     """ retourne la liste des groupes de mailles sous la forme :
109         [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """
110     return aster.GetMaillage(self.get_name(), "GROUP_MA")
111     
112     
113 class squelette     (maillage):pass
114
115
116 # cham_gd (carte,cham_no,cham_elem)
117 #--------------------------------
118
119 class cham_gd(ASSD):pass
120
121 # cham_gd/carte :
122 #--------------------------------
123 class carte(cham_gd):pass
124 class carte_dbel_r   (carte):pass
125 class carte_depl_c   (carte):pass
126 class carte_depl_f   (carte):pass
127 class carte_depl_r   (carte):pass
128 class carte_durt_r   (carte):pass
129 class carte_ener_r   (carte):pass
130 class carte_epsi_r   (carte):pass
131 class carte_erreur   (carte):pass
132 class carte_flux_r   (carte):pass
133 class carte_g_depl_r (carte):pass
134 class carte_geom_r   (carte):pass
135 class carte_hydr_r   (carte):pass
136 class carte_inst_r   (carte):pass
137 class carte_inte_r   (carte):pass
138 class carte_irra_r   (carte):pass
139 class carte_meta_r   (carte):pass
140 class carte_neut_f   (carte):pass
141 class carte_neut_r   (carte):pass
142 class carte_pres_r   (carte):pass
143 class carte_sief_r   (carte):pass
144 class carte_sour_r   (carte):pass
145 class carte_temp_f   (carte):pass
146 class carte_temp_r   (carte):pass
147 class carte_var2_r   (carte):pass
148 class carte_vnor_c   (carte):pass
149
150
151 # cham_gd/cham_elem :
152 #--------------------------------
153 class cham_elem(cham_gd):pass
154 class cham_elem_crit_r(cham_elem):pass
155 class cham_elem_dbel_r(cham_elem):pass
156 class cham_elem_depl_c(cham_elem):pass
157 class cham_elem_depl_f(cham_elem):pass
158 class cham_elem_depl_r(cham_elem):pass
159 class cham_elem_dommag(cham_elem):pass
160 class cham_elem_durt_r(cham_elem):pass
161 class cham_elem_ener_r(cham_elem):pass
162 class cham_elem_epsi_c(cham_elem):pass
163 class cham_elem_epsi_r(cham_elem):pass
164 class cham_elem_erreur(cham_elem):pass
165 class cham_elem_facy_r(cham_elem):pass
166 class cham_elem_flux_r(cham_elem):pass
167 class cham_elem_g_depl(cham_elem):pass
168 class cham_elem_geom_r(cham_elem):pass
169 class cham_elem_hydr_r(cham_elem):pass
170 class cham_elem_inst_r(cham_elem):pass
171 class cham_elem_inte_r(cham_elem):pass
172 class cham_elem_irra_r(cham_elem):pass
173 class cham_elem_meta_r(cham_elem):pass
174 class cham_elem_neut_f(cham_elem):pass
175 class cham_elem_neut_r(cham_elem):pass
176 class cham_elem_pres_r(cham_elem):pass
177 class cham_elem_sief_c(cham_elem):pass
178 class cham_elem_sief_r(cham_elem):pass
179 class cham_elem_sour_r(cham_elem):pass
180 class cham_elem_spma_r(cham_elem):pass
181 class cham_elem_temp_f(cham_elem):pass
182 class cham_elem_temp_r(cham_elem):pass
183 class cham_elem_vari_r(cham_elem):pass
184 class cham_elem_vnor_c(cham_elem):pass
185
186
187 # cham_gd/cham_no :
188 #--------------------------------
189 class cham_no(cham_gd):pass
190 class cham_no_dbel_r   (cham_no):pass
191 class cham_no_depl_c   (cham_no):pass
192 class cham_no_depl_f   (cham_no):pass
193 class cham_no_depl_r   (cham_no):pass
194 class cham_no_durt_r   (cham_no):pass
195 class cham_no_ener_r   (cham_no):pass
196 class cham_no_epsi_r   (cham_no):pass
197 class cham_no_erreur   (cham_no):pass
198 class cham_no_flux_r   (cham_no):pass
199 class cham_no_g_depl_r (cham_no):pass
200 class cham_no_geom_r   (cham_no):pass
201 class cham_no_hydr_r   (cham_no):pass
202 class cham_no_inst_r   (cham_no):pass
203 class cham_no_inte_r   (cham_no):pass
204 class cham_no_irra_r   (cham_no):pass
205 class cham_no_meta_r   (cham_no):pass
206 class cham_no_neut_f   (cham_no):pass
207 class cham_no_neut_r   (cham_no):pass
208 class cham_no_pres_c   (cham_no):pass
209 class cham_no_pres_r   (cham_no):pass
210 class cham_no_sief_r   (cham_no):pass
211 class cham_no_sour_r   (cham_no):pass
212 class cham_no_spma_r   (cham_no):pass
213 class cham_no_temp_c   (cham_no):pass
214 class cham_no_temp_f   (cham_no):pass
215 class cham_no_temp_r   (cham_no):pass
216 class cham_no_vanl_r   (cham_no):pass
217 class cham_no_var2_r   (cham_no):pass
218 class cham_no_vnor_c   (cham_no):pass
219
220
221 # resultat : (evol,mode_stat,mode_meca)
222 #--------------------------------
223
224 class resultat(ASSD):
225   def LIST_CHAMPS (self) :
226     return aster.GetResu(self.get_name(), "CHAMPS")
227   def LIST_NOM_CMP (self) :
228     return aster.GetResu(self.get_name(), "COMPOSANTES")
229   def LIST_VARI_ACCES (self) :
230     return aster.GetResu(self.get_name(), "VARI_ACCES")
231
232 class acou_harmo    (resultat):pass
233 class base_modale     (resultat):pass
234 class comb_fourier  (resultat):pass
235 class dyna_harmo    (resultat):pass
236 class dyna_trans    (resultat):pass
237 class fourier_elas  (resultat):pass
238 class harm_gene     (resultat):pass
239 class mode_acou     (resultat):pass
240 class mode_cycl     (resultat):pass
241 class mode_flamb    (resultat):pass
242 class mode_gene     (resultat):pass
243 class mult_elas     (resultat):pass
244 class theta_geom    (resultat):pass
245
246 # resultat/evol :
247 #--------------------------------
248 class evol(resultat):pass
249 class evol_char(evol):pass
250 class evol_elas(evol):pass
251 class evol_noli(evol):pass
252 class evol_ther(evol):pass
253 class evol_varc(evol):pass
254
255 # resultat/mode_stat :
256 #--------------------------------
257 class mode_stat(resultat):pass
258 class mode_stat_depl(mode_stat):pass
259 class mode_stat_acce(mode_stat):pass
260 class mode_stat_forc(mode_stat):pass
261
262
263 # resultat/mode_meca :
264 #--------------------------------
265 class mode_meca(resultat):pass
266 class mode_meca_c(mode_meca):pass
267
268
269 # fonction :
270 #--------------------------------
271 class fonction(ASSD):
272   def LIST_VALEURS(self) :
273     """ retourne la liste des valeurs [ val1, ...] """
274     vale=string.ljust(self.get_name(),19)+'.VALE'
275     lbl=list(aster.getvectjev(vale))
276     lbr=[]
277     for i in range(len(lbl)/2):
278         lbr.append(lbl[i])
279         lbr.append(lbl[len(lbl)/2+i])
280     return lbr
281 class para_sensi(fonction):pass
282 class fonction_c(fonction):
283   def LIST_VALEURS(self) :
284     """ retourne la liste des valeurs [ val1, ...] """
285     vale=string.ljust(self.get_name(),19)+'.VALE'
286     lbl=list(aster.getvectjev(vale))
287     lbr=[]
288     for i in range(len(lbl)/3):
289         lbr.append(lbl[i])
290         lbr.append(lbl[len(lbl)/3+i*2])
291         lbr.append(lbl[len(lbl)/3+i*2+1])
292     return lbr
293 class nappe(fonction):pass
294
295
296 # matr_asse :
297 #--------------------------------
298 class matr_asse(ASSD):pass
299 class matr_asse_depl_c(matr_asse):pass
300 class matr_asse_depl_r(matr_asse):pass
301 class matr_asse_gene_r(matr_asse):pass
302 class matr_asse_gene_c(matr_asse):pass
303 class matr_asse_pres_c(matr_asse):pass
304 class matr_asse_pres_r(matr_asse):pass
305 class matr_asse_temp_c(matr_asse):pass
306 class matr_asse_temp_r(matr_asse):pass
307
308 # matr_elem :
309 #--------------------------------
310 class matr_elem(ASSD):pass
311 class matr_elem_depl_c(matr_elem):pass
312 class matr_elem_depl_r(matr_elem):pass
313 class matr_elem_pres_c(matr_elem):pass
314 class matr_elem_temp_r(matr_elem):pass
315
316
317
318
319 # table :
320 #--------------------------------
321
322 class table(ASSD):
323   def __getitem__(self,key):
324       requete=string.ljust(key[0],24)
325       tblp=string.ljust(self.get_name(),19)+'.TBLP'
326       tabnom=list(aster.getvectjev(tblp))
327       for i in range(len(tabnom)) : 
328          if tabnom[i]==requete: break
329       resu=aster.getvectjev(tabnom[i+2])
330       if key[1]>len(resu) : raise KeyError
331       else                : return resu[key[1]-1]
332
333 class tabl_aire_int   (table):pass
334 class tabl_calc_g_loca(table):pass
335 class tabl_calc_g_th  (table):pass
336 class tabl_cara_geom  (table):pass
337 class tabl_char_limite(table):pass
338 class tabl_ener_elas  (table):pass
339 class tabl_ener_pot   (table):pass
340 class tabl_ener_cin   (table):pass
341 class tabl_trav_ext   (table):pass
342 class tabl_ener_totale(table):pass
343 class tabl_indic_ener (table):pass
344 class tabl_indic_seuil(table):pass
345 class tabl_intsp      (table):pass
346 class tabl_mass_iner  (table):pass
347 class tabl_post_alea  (table):pass
348 class tabl_post_beta  (table):pass
349 class tabl_post_dyna  (table):pass
350 class tabl_post_f_alea(table):pass
351 class tabl_post_fatig (table):pass
352 class tabl_post_gouj2e(table):pass
353 class tabl_post_k     (table):pass
354 class tabl_post_rccm  (table):pass
355 class tabl_post_rele  (table):pass
356 class tabl_post_simpli(table):pass
357 class tabl_post_usur  (table):pass
358 class tabl_reca_weib  (table):pass
359 class tabl_rice_tracey(table):pass
360 class tabl_texture    (table):pass
361 class tabl_trc        (table):pass
362 class tabl_weibull    (table):pass
363
364
365 # vect_asse :
366 #--------------------------------
367 class vect_asse(ASSD):pass
368 class vect_asse_gene(vect_asse):pass
369
370
371 # vect_elem :
372 #--------------------------------
373 class vect_elem(ASSD):pass
374 class vect_elem_depl_r(vect_elem):pass
375 class vect_elem_pres_c(vect_elem):pass
376 class vect_elem_pres_r(vect_elem):pass
377 class vect_elem_temp_r(vect_elem):pass
378
379 #& MODIF COMMUN  DATE 31/03/2003   AUTEUR ASSIRE A.ASSIRE 
380 #            CONFIGURATION MANAGEMENT OF EDF VERSION
381 # ======================================================================
382 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
383 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
384 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
385 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
386 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
387 #                                                                       
388 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
389 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
390 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
391 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
392 #                                                                       
393 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
394 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
395 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
396 # ======================================================================
397 DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,docu="U4.11.01-g",repetable='n',
398             UIinfo={"groupes":("Gestion du travail",)},
399            fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
400           sd_prod=ops.DEBUT,
401
402          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
403                            into=("OUI","NON"),defaut="OUI"),
404          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
405                                statut='f',min=1,max=3,
406            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
407                                  into=('GLOBALE','VOLATILE','LOCALE'),),
408            TITRE           =SIMP(statut='f',typ='TXM'),
409            CAS             =SIMP(statut='f',typ='TXM'),
410            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
411            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
412            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
413          ),
414          IMPRESSION      =FACT(statut='f',min=1,max=3,
415            FICHIER         =SIMP(statut='o',typ='TXM'),
416            UNITE           =SIMP(statut='o',typ='I'),
417          ),
418          CATALOGUE       =FACT(statut='f',min=1,max=10,
419            FICHIER         =SIMP(statut='o',typ='TXM'),
420            TITRE           =SIMP(statut='f',typ='TXM'),
421            UNITE           =SIMP(statut='f',typ='I'),
422          ),
423          CODE            =FACT(fr="définition d un nom pour l'esemble d'une étude",
424                                statut='f',min=1,max=1,
425            NOM             =SIMP(statut='o',typ='TXM'),
426            NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
427            UNITE           =SIMP(statut='f',typ='I',defaut=15),
428          ),
429          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
430                                statut='f',min=1,max=1,
431            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
432                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
433            JEVEUX          =SIMP(fr="force les déchargement sur disque",
434                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
435            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
436                                  statut='f',typ='TXM',into=('TEST',)),
437          ),
438          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
439            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
440            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
441            TAILLE          =SIMP(statut='f',typ='I'),
442            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
443            PARTITION       =SIMP(statut='f',typ='R'),
444          ),
445  );
446 #& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
447 #            CONFIGURATION MANAGEMENT OF EDF VERSION
448 # ======================================================================
449 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
450 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
451 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
452 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
453 # (AT YOUR OPTION) ANY LATER VERSION.                                 
454 #
455 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
456 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
457 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
458 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
459 #
460 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
461 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
462 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
463 # ======================================================================
464 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g",
465             fr="Affectation des éléments finis sur le maillage",
466             reentrant='n',
467             UIinfo={"groupes":("Modélisation",)},
468 VERIF=SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD")),
469 ) ;
470
471 PLS_BASE_SIMPLE=OPER(nom="PLS_BASE_SIMPLE",op=19,sd_prod=cara_elem,
472                     fr="Exemple de PLUSIEURS_BASE_Panel sans validator",
473                     docu="U4.42.01-g",reentrant='n',
474                     UIinfo={"groupes":("Modélisation",)},
475   VAR1=SIMP(statut='o',typ='TXM',min=1,max=6 ),
476   VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC")),
477   VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3)),
478   VAR4=SIMP(statut='o',typ='I',min=1,max=1),
479   VAR44=SIMP(statut='o',typ='I',min=1,max=6),
480   VAR5=SIMP(statut='o',typ='TXM',min=1,max=1),
481   VAR6=SIMP(statut='o',typ='C',min=1,max=1),
482   MODELE=SIMP(statut='o',typ=modele ),
483 ) ;
484
485 TESTS_VALID=OPER(nom="TESTS_VALID",op=19,sd_prod=cara_elem,
486                     fr="Exemple de PLUSIEURS_BASE_Panel sans validator",
487                     docu="U4.42.01-g",reentrant='n',
488                     UIinfo={"groupes":("Modélisation",)},
489   LongStr=SIMP(statut='o',typ='TXM',validators=LongStr(3,5)),
490   ListStr=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5)),
491   PairVal=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal()),
492   RangeVal=SIMP(statut='o',typ='I',validators=RangeVal(3,15)),
493   CardVal=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15)),
494   EnumVal=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15))),
495   OrdList=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant")),
496   OrdList2=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant")),
497   TypeVal=SIMP(statut='o',typ='I',validators=TypeVal(1)),
498 ) ;
499
500 PLS_BASE_NOREPEAT=OPER(nom="PLS_BASE_NOREPEAT",op=19,sd_prod=cara_pout,
501                     fr="Exemple de PLUSIEURS_BASE_Panel avec validator",
502                     docu="U4.42.01-g",reentrant='n',
503                     UIinfo={"groupes":("Modélisation",)},
504   VAR1=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat()),
505   VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat()),
506   VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal()),
507   VAR4=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal()),
508   VAR5=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal()),
509   VAR6=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal())),
510   VAR7=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()]),
511 ) ;
512
513 def toto(**args):
514     return maillage
515
516 BLOCBLOC=OPER(nom="BLOCBLOC",op=1,sd_prod=toto,
517                 TITI  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
518                 TUTU  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
519                 TATA  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
520                 TOTO  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
521                 b_unit1  =BLOC(condition = "TITI =='AAA'",
522                                TOTO1  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
523                                c_unit1       =BLOC(condition = "TOTO1 == 'AAA'", UNITE1   =SIMP(statut='f',typ='I',defaut=25),),
524                               ),
525                 b_unit2  =BLOC(condition = "TUTU =='AAA'",
526                                TOTO2  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
527                                c_unit2       =BLOC(condition = "TOTO2 == 'BBB'", UNITE2   =SIMP(statut='f',typ='I',defaut=25),),
528                               ),
529                 b_unit3  =BLOC(condition = "TATA =='BBB'",
530                                TOTO3  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
531                                c_unit3       =BLOC(condition = "TOTO3 == 'BBB'", UNITE3   =SIMP(statut='f',typ='I',defaut=25),),
532                               ),
533                 b_unit4  =BLOC(condition = "TOTO =='BBB'",
534                                TOTO4  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
535                                c_unit4       =BLOC(condition = "TOTO4 == 'AAA'", UNITE4   =SIMP(statut='f',typ='I',defaut=25),),
536                               ),
537              )
538
539 CARDFACT=OPER(nom="CARDFACT",op=1,sd_prod=toto,reentrant='f',
540               A=FACT(F=SIMP(typ='TXM')),
541               B=FACT(statut='f',F=SIMP(typ='TXM')),
542               C=FACT(statut='o',F=SIMP(typ='TXM')),
543               D=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
544               E=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
545               F=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
546               TOTO=SIMP(typ='TXM'),
547               bl=BLOC(condition="TOTO=='a'",
548                       DD=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
549                       DE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
550                       DF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
551                      ),
552               bl2=BLOC(condition="reuse",
553                       ED=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
554                       EE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
555                       EF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
556                      ),
557               X=FACT(statut='f',min=3,max=5,F=FACT(max=3,X=SIMP(typ='TXM'),
558                                                    Y=FACT(max=3,Z=SIMP(typ='TXM'),),
559                                                   ),
560                     ),
561              )
562
563 #& MODIF COMMANDE  DATE 21/03/2003   AUTEUR ASSIRE A.ASSIRE 
564 #            CONFIGURATION MANAGEMENT OF EDF VERSION
565 # ======================================================================
566 POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude",
567                 docu="U4.11.03-g",sd_prod = ops.POURSUITE,
568             UIinfo={"groupes":("Gestion du travail",)},
569                 op_init = ops.POURSUITE_context,fichier_ini = 1,
570          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
571                            into=("OUI","NON"),defaut="OUI"),
572          BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
573                                statut='f',min=1,max=3,
574            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
575            TITRE           =SIMP(statut='f',typ='TXM'),
576            CAS             =SIMP(statut='f',typ='TXM'),
577            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
578            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
579            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
580          ),
581          IMPRESSION      =FACT(statut='f',min=1,max=3,
582            FICHIER         =SIMP(statut='o',typ='TXM'),
583            UNITE           =SIMP(statut='o',typ='I'),
584          ),
585          CATALOGUE       =FACT(statut='f',min=1,max=10,
586            FICHIER         =SIMP(statut='o',typ='TXM'),
587            TITRE           =SIMP(statut='f',typ='TXM'),
588            UNITE           =SIMP(statut='f',typ='I'),
589          ),
590          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
591                                statut='f',min=1,max=1,
592            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
593                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
594            JEVEUX          =SIMP(fr="force les déchargement sur disque",
595                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
596            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
597                                  statut='f',typ='TXM',into=('TES',)),
598          ),
599          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
600            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
601            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
602            TAILLE          =SIMP(statut='f',typ='I'),
603            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
604            PARTITION       =SIMP(statut='f',typ='R' ),
605          ),
606          CODE            =FACT("définition d un nom pour l'esemble d'une étude",
607                                statut='f',min=1,max=1,
608            NOM             =SIMP(statut='o',typ='TXM'),
609            UNITE           =SIMP(statut='f',typ='I',defaut=15),
610          ),
611 )  ;
612 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
613 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
614 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
615 # ======================================================================
616 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
617          docu="U4.11.02-g",
618             UIinfo={"groupes":("Gestion du travail",)},
619          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
620                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
621          PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
622                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
623          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
624                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
625          FICHIER         =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
626 )  ;
627
628 #FORMULE = FORM( nom='FORMULE',op=ops.build_formule,sd_prod=formule,
629 #                docu="U4.31.05-e",
630 #                fr="Définition d une fonction",reentrant = 'n',
631 #                regles=(UN_PARMI('REEL','COMPLEXE'),),
632
633 ##### fonctions entieres interdites suite au probleme AL2003-072
634 #####           regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
635 #####           ENTIER   = SIMP(typ = 'shell',),
636
637 #                REEL     = SIMP(typ = 'shell',),
638 #                COMPLEXE = SIMP(typ = 'shell',),
639 #) ;
640
641 DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-e",
642             UIinfo={"groupes":("Gestion du travail",)},
643               fr="Destruction d un concept utilisateur dans la base GLOBALE",
644              op_init=ops.detruire,
645              regles=(UN_PARMI('CONCEPT','OBJET',),),
646             CONCEPT     =FACT(statut='f',
647                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
648             ),
649             OBJET  =FACT(statut='f',
650                CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
651                POSITION    =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'),
652             ),
653             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),
654 );
655