Salome HOME
CCAR: modifications pour :
[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.py,v 1.1 2004/11/19 09:06:23 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 GLOB_OPER=OPER(nom="GLOB_OPER",op=18,sd_prod=modele,docu="U4.41.01-g",
472         FORMAT          =SIMP(statut='f',typ='TXM',position='global',
473                                into=("TABLEAU","AGRAF","XMGRACE",),),
474                 b_unit1  =BLOC(condition = "FORMAT == 'TABLEAU'",
475                                TOTO1  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
476                               ),
477                 b_unit2  =BLOC(condition = "FORMAT == None",
478                                TOTO2  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
479                               ),
480              )
481
482 PLS_BASE_SIMPLE=OPER(nom="PLS_BASE_SIMPLE",op=19,sd_prod=cara_elem,
483                     fr="Exemple de PLUSIEURS_BASE_Panel sans validator",
484                     docu="U4.42.01-g",reentrant='n',
485                     UIinfo={"groupes":("Modélisation",)},
486   VAR1=SIMP(statut='o',typ='TXM',min=1,max=6 ),
487   VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC")),
488   VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3)),
489   VAR4=SIMP(statut='o',typ='I',min=1,max=1),
490   VAR44=SIMP(statut='o',typ='I',min=1,max=6),
491   VAR5=SIMP(statut='o',typ='TXM',min=1,max=1),
492   VAR6=SIMP(statut='o',typ='C',min=1,max=1),
493   MODELE=SIMP(statut='o',typ=modele ),
494 ) ;
495
496 TESTS_VALID=OPER(nom="TESTS_VALID",op=19,sd_prod=cara_elem,
497                     fr="Exemple de PLUSIEURS_BASE_Panel sans validator",
498                     docu="U4.42.01-g",reentrant='n',
499                     UIinfo={"groupes":("Modélisation",)},
500   LongStr=SIMP(statut='o',typ='TXM',validators=LongStr(3,5)),
501   ListStr=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5)),
502   PairVal=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal()),
503   RangeVal=SIMP(statut='o',typ='I',validators=RangeVal(3,15)),
504   CardVal=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15)),
505   EnumVal=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15))),
506   OrdList=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant")),
507   OrdList2=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant")),
508   TypeVal=SIMP(statut='o',typ='I',validators=TypeVal(1)),
509 ) ;
510
511 PLS_BASE_NOREPEAT=OPER(nom="PLS_BASE_NOREPEAT",op=19,sd_prod=cara_pout,
512                     fr="Exemple de PLUSIEURS_BASE_Panel avec validator",
513                     docu="U4.42.01-g",reentrant='n',
514                     UIinfo={"groupes":("Modélisation",)},
515   VAR1=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat()),
516   VAR2=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat()),
517   VAR3=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal()),
518   VAR4=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal()),
519   VAR5=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal()),
520   VAR6=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal())),
521   VAR7=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()]),
522 ) ;
523
524 def toto(**args):
525     return maillage
526
527 BLOCBLOC=OPER(nom="BLOCBLOC",op=1,sd_prod=toto,
528                 TITI  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
529                 TUTU  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
530                 TATA  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
531                 TOTO  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
532                 b_unit1  =BLOC(condition = "TITI =='AAA'",
533                                TOTO1  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
534                                c_unit1       =BLOC(condition = "TOTO1 == 'AAA'", UNITE1   =SIMP(statut='f',typ='I',defaut=25),),
535                               ),
536                 b_unit2  =BLOC(condition = "TUTU =='AAA'",
537                                TOTO2  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
538                                c_unit2       =BLOC(condition = "TOTO2 == 'BBB'", UNITE2   =SIMP(statut='f',typ='I',defaut=25),),
539                               ),
540                 b_unit3  =BLOC(condition = "TATA =='BBB'",
541                                TOTO3  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
542                                c_unit3       =BLOC(condition = "TOTO3 == 'BBB'", UNITE3   =SIMP(statut='f',typ='I',defaut=25),),
543                               ),
544                 b_unit4  =BLOC(condition = "TOTO =='BBB'",
545                                TOTO4  =SIMP(statut='f',typ='TXM',defaut='AAA',into=('AAA','BBB'),),
546                                c_unit4       =BLOC(condition = "TOTO4 == 'AAA'", UNITE4   =SIMP(statut='f',typ='I',defaut=25),),
547                               ),
548              )
549
550 CARDFACT=OPER(nom="CARDFACT",op=1,sd_prod=toto,reentrant='f',
551               A=FACT(F=SIMP(typ='TXM')),
552               B=FACT(statut='f',F=SIMP(typ='TXM')),
553               C=FACT(statut='o',F=SIMP(typ='TXM')),
554               D=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
555               E=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
556               F=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
557               TOTO=SIMP(typ='TXM'),
558               bl=BLOC(condition="TOTO=='a'",
559                       DD=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
560                       DE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
561                       DF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
562                      ),
563               bl2=BLOC(condition="reuse",
564                       ED=FACT(statut='f',min=3,max=5,F=SIMP(typ='TXM')),
565                       EE=FACT(statut='o',min=3,max=5,F=SIMP(typ='TXM')),
566                       EF=FACT(statut='o',min=3,max=5,F=SIMP(statut='o',typ='TXM')),
567                      ),
568               X=FACT(statut='f',min=3,max=5,F=FACT(max=3,X=SIMP(typ='TXM'),
569                                                    Y=FACT(max=3,Z=SIMP(typ='TXM'),),
570                                                   ),
571                     ),
572              )
573
574 #& MODIF COMMANDE  DATE 21/03/2003   AUTEUR ASSIRE A.ASSIRE 
575 #            CONFIGURATION MANAGEMENT OF EDF VERSION
576 # ======================================================================
577 POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude",
578                 docu="U4.11.03-g",sd_prod = ops.POURSUITE,
579             UIinfo={"groupes":("Gestion du travail",)},
580                 op_init = ops.POURSUITE_context,fichier_ini = 1,
581          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
582                            into=("OUI","NON"),defaut="OUI"),
583          BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
584                                statut='f',min=1,max=3,
585            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
586            TITRE           =SIMP(statut='f',typ='TXM'),
587            CAS             =SIMP(statut='f',typ='TXM'),
588            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
589            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
590            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
591          ),
592          IMPRESSION      =FACT(statut='f',min=1,max=3,
593            FICHIER         =SIMP(statut='o',typ='TXM'),
594            UNITE           =SIMP(statut='o',typ='I'),
595          ),
596          CATALOGUE       =FACT(statut='f',min=1,max=10,
597            FICHIER         =SIMP(statut='o',typ='TXM'),
598            TITRE           =SIMP(statut='f',typ='TXM'),
599            UNITE           =SIMP(statut='f',typ='I'),
600          ),
601          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
602                                statut='f',min=1,max=1,
603            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
604                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
605            JEVEUX          =SIMP(fr="force les déchargement sur disque",
606                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
607            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
608                                  statut='f',typ='TXM',into=('TES',)),
609          ),
610          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
611            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
612            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
613            TAILLE          =SIMP(statut='f',typ='I'),
614            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
615            PARTITION       =SIMP(statut='f',typ='R' ),
616          ),
617          CODE            =FACT("définition d un nom pour l'esemble d'une étude",
618                                statut='f',min=1,max=1,
619            NOM             =SIMP(statut='o',typ='TXM'),
620            UNITE           =SIMP(statut='f',typ='I',defaut=15),
621          ),
622 )  ;
623 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
624 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
625 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
626 # ======================================================================
627 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
628          docu="U4.11.02-g",
629             UIinfo={"groupes":("Gestion du travail",)},
630          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
631                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
632          PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
633                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
634          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
635                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
636          FICHIER         =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
637 )  ;
638
639 #FORMULE = FORM( nom='FORMULE',op=ops.build_formule,sd_prod=formule,
640 #                docu="U4.31.05-e",
641 #                fr="Définition d une fonction",reentrant = 'n',
642 #                regles=(UN_PARMI('REEL','COMPLEXE'),),
643
644 ##### fonctions entieres interdites suite au probleme AL2003-072
645 #####           regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
646 #####           ENTIER   = SIMP(typ = 'shell',),
647
648 #                REEL     = SIMP(typ = 'shell',),
649 #                COMPLEXE = SIMP(typ = 'shell',),
650 #) ;
651
652 DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-e",
653             UIinfo={"groupes":("Gestion du travail",)},
654               fr="Destruction d un concept utilisateur dans la base GLOBALE",
655              op_init=ops.detruire,
656              regles=(UN_PARMI('CONCEPT','OBJET',),),
657             CONCEPT     =FACT(statut='f',
658                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
659             ),
660             OBJET  =FACT(statut='f',
661                CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
662                POSITION    =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'),
663             ),
664             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),
665 );
666