1 # -*- coding: utf-8 -*-
3 from Accas import SIMP,FACT,BLOC
4 from Accas import AsException,AsType
5 from Accas import ASSD,CO,GEOM,fonction
6 from Accas import OPER,MACRO,JDC_CATA,FORM,PROC
7 from Accas import AU_MOINS_UN,UN_PARMI,PRESENT_PRESENT,EXCLUS,ENSEMBLE,PRESENT_ABSENT
10 #compatibilite avec V9
12 class ASSD(ASSD,Noyau.AsBase):pass
13 class GEOM(GEOM,Noyau.AsBase):pass
16 # Type le plus general
17 class entier (ASSD):pass
18 class reel (ASSD):pass
19 class complexe(ASSD):pass
20 class liste (ASSD):pass
21 class chaine (ASSD):pass
31 class cabl_precont (ASSD):pass
32 class cara_elem (ASSD):pass
33 class cara_pout (ASSD):pass
34 class cham_mater (ASSD):pass
35 class char_acou (ASSD):pass
36 class char_cine_acou (ASSD):pass
37 class char_cine_meca (ASSD):pass
38 class char_cine_ther (ASSD):pass
39 class char_meca (ASSD):pass
40 class char_ther (ASSD):pass
41 class courbe (ASSD):pass
42 class fond_fiss (ASSD):pass
43 class interf_dyna_clas(ASSD):pass
44 class interspfact (ASSD):pass
45 class listis (ASSD):pass
46 class listr8 (ASSD):pass
47 class macr_elem_dyna (ASSD):pass
48 class macr_elem_stat (ASSD):pass
49 class mater (ASSD):pass
50 class melasflu (ASSD):pass
51 class modele (ASSD):pass
52 class modele_gene (ASSD):pass
53 class nume_ddl (ASSD):pass
54 class nume_ddl_gene (ASSD):pass
55 class obstacle (ASSD):pass
56 class spectre (ASSD):pass
57 class surface (ASSD):pass
58 class tran_gene (ASSD):pass
59 class type_flui_stru (ASSD):pass
60 class valeur (ASSD):pass
63 #--------------------------------
64 class maillage(ASSD):pass
65 class squelette (maillage):pass
67 # cham_gd (carte,cham_no,cham_elem)
68 #--------------------------------
70 class cham_gd(ASSD):pass
73 #--------------------------------
74 class carte(cham_gd):pass
75 class carte_dbel_r (carte):pass
76 class carte_depl_c (carte):pass
77 class carte_depl_f (carte):pass
78 class carte_depl_r (carte):pass
79 class carte_durt_r (carte):pass
80 class carte_ener_r (carte):pass
81 class carte_epsi_r (carte):pass
82 class carte_erreur (carte):pass
83 class carte_flux_r (carte):pass
84 class carte_g_depl_r (carte):pass
85 class carte_geom_r (carte):pass
86 class carte_hydr_r (carte):pass
87 class carte_inst_r (carte):pass
88 class carte_inte_r (carte):pass
89 class carte_irra_r (carte):pass
90 class carte_meta_r (carte):pass
91 class carte_neut_f (carte):pass
92 class carte_neut_r (carte):pass
93 class carte_pres_r (carte):pass
94 class carte_sief_r (carte):pass
95 class carte_sour_r (carte):pass
96 class carte_temp_f (carte):pass
97 class carte_temp_r (carte):pass
98 class carte_var2_r (carte):pass
99 class carte_vnor_c (carte):pass
101 # cham_gd/cham_elem :
102 #--------------------------------
103 class cham_elem(cham_gd):pass
104 class cham_elem_crit_r(cham_elem):pass
105 class cham_elem_dbel_r(cham_elem):pass
106 class cham_elem_depl_c(cham_elem):pass
107 class cham_elem_depl_f(cham_elem):pass
108 class cham_elem_depl_r(cham_elem):pass
109 class cham_elem_dommag(cham_elem):pass
110 class cham_elem_durt_r(cham_elem):pass
111 class cham_elem_ener_r(cham_elem):pass
112 class cham_elem_epsi_c(cham_elem):pass
113 class cham_elem_epsi_r(cham_elem):pass
114 class cham_elem_erreur(cham_elem):pass
115 class cham_elem_flux_r(cham_elem):pass
116 class cham_elem_g_depl(cham_elem):pass
117 class cham_elem_geom_r(cham_elem):pass
118 class cham_elem_hydr_r(cham_elem):pass
119 class cham_elem_inst_r(cham_elem):pass
120 class cham_elem_inte_r(cham_elem):pass
121 class cham_elem_irra_r(cham_elem):pass
122 class cham_elem_meta_r(cham_elem):pass
123 class cham_elem_neut_f(cham_elem):pass
124 class cham_elem_neut_r(cham_elem):pass
125 class cham_elem_pres_r(cham_elem):pass
126 class cham_elem_sief_c(cham_elem):pass
127 class cham_elem_sief_r(cham_elem):pass
128 class cham_elem_sour_r(cham_elem):pass
129 class cham_elem_temp_f(cham_elem):pass
130 class cham_elem_temp_r(cham_elem):pass
131 class cham_elem_vari_r(cham_elem):pass
132 class cham_elem_vnor_c(cham_elem):pass
136 #--------------------------------
137 class cham_no(cham_gd):pass
138 class cham_no_dbel_r (cham_no):pass
139 class cham_no_depl_c (cham_no):pass
140 class cham_no_depl_f (cham_no):pass
141 class cham_no_depl_r (cham_no):pass
142 class cham_no_durt_r (cham_no):pass
143 class cham_no_ener_r (cham_no):pass
144 class cham_no_epsi_r (cham_no):pass
145 class cham_no_erreur (cham_no):pass
146 class cham_no_flux_r (cham_no):pass
147 class cham_no_g_depl_r (cham_no):pass
148 class cham_no_geom_r (cham_no):pass
149 class cham_no_hydr_r (cham_no):pass
150 class cham_no_inst_r (cham_no):pass
151 class cham_no_inte_r (cham_no):pass
152 class cham_no_irra_r (cham_no):pass
153 class cham_no_meta_r (cham_no):pass
154 class cham_no_neut_f (cham_no):pass
155 class cham_no_neut_r (cham_no):pass
156 class cham_no_pres_c (cham_no):pass
157 class cham_no_pres_r (cham_no):pass
158 class cham_no_sief_r (cham_no):pass
159 class cham_no_sour_r (cham_no):pass
160 class cham_no_temp_c (cham_no):pass
161 class cham_no_temp_f (cham_no):pass
162 class cham_no_temp_r (cham_no):pass
163 class cham_no_vanl_r (cham_no):pass
164 class cham_no_var2_r (cham_no):pass
165 class cham_no_vnor_c (cham_no):pass
168 class resultat(ASSD):pass
170 class acou_harmo (resultat):pass
171 class base_modale (resultat):pass
172 class comb_fourier (resultat):pass
173 class dyna_harmo (resultat):pass
174 class dyna_trans (resultat):pass
175 class fourier_elas (resultat):pass
176 class harm_gene (resultat):pass
177 class mode_acou (resultat):pass
178 class mode_cycl (resultat):pass
179 class mode_flamb (resultat):pass
180 class mode_gene (resultat):pass
181 class mult_elas (resultat):pass
182 class theta_geom (resultat):pass
185 #--------------------------------
186 class evol(resultat):pass
187 class evol_char(evol):pass
188 class evol_elas(evol):pass
189 class evol_noli(evol):pass
190 class evol_ther(evol):pass
191 class evol_varc(evol):pass
193 # resultat/mode_stat :
194 #--------------------------------
195 class mode_stat(resultat):pass
196 class mode_stat_depl(mode_stat):pass
197 class mode_stat_acce(mode_stat):pass
198 class mode_stat_forc(mode_stat):pass
201 # resultat/mode_meca :
202 #--------------------------------
203 class mode_meca(resultat):pass
204 class mode_meca_c(mode_meca):pass
207 #--------------------------------
208 class para_sensi(fonction):pass
209 class fonction_c(fonction):pass
212 #--------------------------------
213 class matr_asse(ASSD):pass
214 class matr_asse_depl_c(matr_asse):pass
215 class matr_asse_depl_r(matr_asse):pass
216 class matr_asse_gene_r(matr_asse):pass
217 class matr_asse_gene_c(matr_asse):pass
218 class matr_asse_pres_c(matr_asse):pass
219 class matr_asse_pres_r(matr_asse):pass
220 class matr_asse_temp_c(matr_asse):pass
221 class matr_asse_temp_r(matr_asse):pass
224 #--------------------------------
225 class matr_elem(ASSD):pass
226 class matr_elem_depl_c(matr_elem):pass
227 class matr_elem_depl_r(matr_elem):pass
228 class matr_elem_pres_c(matr_elem):pass
229 class matr_elem_temp_r(matr_elem):pass
231 # table : (tabl_fonc)
232 #--------------------------------
234 class table(ASSD):pass
236 class tabl_aire_int (table):pass
237 class tabl_calc_g_loca(table):pass
238 class tabl_calc_g_th (table):pass
239 class tabl_cara_geom (table):pass
240 class tabl_char_limite(table):pass
241 class tabl_ener_elas (table):pass
242 class tabl_ener_pot (table):pass
243 class tabl_ener_cin (table):pass
244 class tabl_ener_totale(table):pass
245 class tabl_indic_ener (table):pass
246 class tabl_indic_seuil(table):pass
247 class tabl_intsp (table):pass
248 class tabl_mass_iner (table):pass
249 class tabl_post_alea (table):pass
250 class tabl_post_dyna (table):pass
251 class tabl_post_f_alea(table):pass
252 class tabl_post_fatig (table):pass
253 class tabl_post_gouj2e(table):pass
254 class tabl_post_k (table):pass
255 class tabl_post_rccm (table):pass
256 class tabl_post_rele (table):pass
257 class tabl_post_simpli(table):pass
258 class tabl_post_usur (table):pass
259 class tabl_reca_weib (table):pass
260 class tabl_rice_tracey(table):pass
261 class tabl_texture (table):pass
262 class tabl_trc (table):pass
263 class tabl_weibull (table):pass
266 #--------------------------------
267 class tabl_fonc (table):pass
268 class tabl_fonc_max (tabl_fonc):pass
269 class tabl_fonc_noci (tabl_fonc):pass
270 class tabl_fonc_rms (tabl_fonc):pass
274 #--------------------------------
275 class vect_asse(ASSD):pass
276 class vect_asse_gene(vect_asse):pass
279 #--------------------------------
280 class vect_elem(ASSD):pass
281 class vect_elem_depl_r(vect_elem):pass
282 class vect_elem_pres_c(vect_elem):pass
283 class vect_elem_pres_r(vect_elem):pass
284 class vect_elem_temp_r(vect_elem):pass
287 JdC=JDC_CATA(code="ASTER")
289 def DEBUT_prod(self,PAR_LOT,**args):
291 Fonction sdprod de la macro DEBUT
293 self.jdc.set_par_lot(PAR_LOT)
295 DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-f1",repetable='n',
296 fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
299 PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
300 into=("OUI","NON"),defaut="OUI"),
301 BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX",
302 statut='f',min=01,max=03,
303 FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM',
304 into=('GLOBALE','VOLATILE','LOCALE'),),
305 TITRE =SIMP(statut='f',typ='TXM'),
306 CAS =SIMP(statut='f',typ='TXM'),
307 NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
308 LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
309 LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
311 IMPRESSION =FACT(statut='f',min=01,max=03,
312 FICHIER =SIMP(statut='o',typ='TXM'),
313 UNITE =SIMP(statut='o',typ='I'),
315 CATALOGUE =FACT(statut='f',min=01,max=10,
316 FICHIER =SIMP(statut='o',typ='TXM'),
317 TITRE =SIMP(statut='f',typ='TXM'),
318 UNITE =SIMP(statut='f',typ='I'),
320 CODE =FACT("définition d un nom pour l'esemble d'une étude",
321 statut='f',min=01,max=01,
322 NOM =SIMP(statut='o',typ='TXM'),
323 UNITE =SIMP(statut='f',typ='I',defaut=15),
325 DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
326 statut='f',min=01,max=01,
327 JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
328 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
329 JEVEUX =SIMP(fr="force les déchargement sur disque",
330 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
331 ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
332 statut='f',typ='TXM',into=('TEST',)),
334 MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
335 GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
336 TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
337 TAILLE =SIMP(statut='f',typ='I'),
338 TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
339 PARTITION =SIMP(statut='f',typ='R'),
343 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage,
344 fr="Lecture d'un fichier de maillage",
345 ang="Readings of a mesh file",
346 docu="U4.21.01-f",reentrant='n',
348 UNITE =SIMP(statut='f',typ='I',defaut= 20 ),
350 FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
351 fr="Format du fichier : ASTER ou MED.",
352 ang="Format of the file : ASTER or MED.",),
354 ABSC_CURV =FACT(statut='f',min=00,max=01,
355 TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
358 VERI_MAIL =FACT(statut='d',min=01,max=01,
359 APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
362 b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
363 fr="Informations complémentaires pour la lecture MED.",
364 ang="Further information for MED readings.",
366 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
367 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
369 NOM_MED = SIMP(statut='f',typ='TXM',
370 fr="Nom du maillage dans le fichier MED.",
371 ang="Name of the mesh into the MED file.",),
373 INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
377 INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
381 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-f1",
382 fr="Affectation des éléments finis sur le maillage",reentrant='n',
383 regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
384 MAILLAGE =SIMP(statut='o',typ=(maillage) ),
385 INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
386 VERIF =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ),
387 AFFE_SOUS_STRUC =FACT(statut='f',min=01,max=01,
388 regles=(UN_PARMI('TOUT','MAILLE'),),
389 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
390 MAILLE =SIMP(statut='f',typ=ma,max='**'),
391 PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
393 AFFE =FACT(statut='f',min=01,max='**',
394 regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
395 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
396 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
397 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
398 MAILLE =SIMP(statut='f',typ=ma,max='**'),
399 NOEUD =SIMP(statut='f',typ=no,max='**'),
400 PHENOMENE =SIMP(statut='o',typ='TXM',
401 into=("MECANIQUE","THERMIQUE","ACOUSTIQUE","NON_LOCAL") ),
402 b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'",
403 fr="modelisations mécaniques",
404 MODELISATION =SIMP(statut='o',typ='TXM', into=(
478 b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'",
479 fr="modelisations thermiques",
480 MODELISATION =SIMP(statut='o',typ='TXM',into=(
492 b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
493 fr="modelisations acoustiques",
494 MODELISATION =SIMP(statut='o',typ='TXM',into=(
499 b_non_local =BLOC( condition = "PHENOMENE=='NON_LOCAL'",
500 fr="modelisations non locales",
501 MODELISATION =SIMP(statut='o',typ='TXM',into=(
510 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem,
511 fr="Affectation de caractéristiques à des éléments de structure",
512 docu="U4.42.01-f1",reentrant='n',
513 regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','MASSIF',
514 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),),
515 MODELE =SIMP(statut='o',typ=modele ),
516 INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
517 VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
519 POUTRE =FACT(statut='f',min=01,max='**',
520 regles=(UN_PARMI('MAILLE','GROUP_MA'),),
521 MAILLE =SIMP(statut='f',typ=ma,max='**'),
522 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
523 SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
524 CARA_SECT =SIMP(statut='f',typ=(cara_pout) ),
525 TUYAU_NCOU =SIMP(statut='f',typ='I',min=1,max=10,defaut=3),
526 TUYAU_NSEC =SIMP(statut='f',typ='I',min=1,max=32,defaut=16),
527 b_generale =BLOC( condition = "SECTION=='GENERALE'",
528 CARA =SIMP(statut='o',typ='TXM',max='**',
529 into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
530 "AI","JG","IYR2","IZR2","A1",
531 "IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
532 "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
533 "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
534 "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
535 "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
536 "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
537 "EPY2","EPZ2","R","R1","R2") ),
538 VALE =SIMP(statut='o',typ='R',max='**'),
539 VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
541 b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
542 CARA =SIMP(statut='o',typ='TXM',max='**',
543 into=("H","EP","HY","HZ","EPY","EPZ",
544 "H1","HZ1","HY1","EP1","EPY1","EPZ1",
545 "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
546 VALE =SIMP(statut='o',typ='R',max='**'),
547 VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
549 b_cercle =BLOC( condition = "SECTION=='CERCLE'",
550 CARA =SIMP(statut='o',typ='TXM',max='**',
551 into=("R","EP","R1","R2","EP1","EP2") ),
552 VALE =SIMP(statut='o',typ='R',max='**'),
553 VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
554 MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
556 FCX =SIMP(statut='f',typ=(fonction) ),
559 BARRE =FACT(statut='f',min=01,max='**',
560 regles=(UN_PARMI('MAILLE','GROUP_MA'),),
561 MAILLE =SIMP(statut='f',typ=ma,max='**'),
562 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
563 SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
564 b_generale =BLOC( condition = "SECTION=='GENERALE'",
565 CARA =SIMP(statut='o',typ='TXM',into=("A",) ),
566 VALE =SIMP(statut='o',typ='R' ),
568 b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'",
569 CARA =SIMP(statut='o',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),max=6 ),
570 VALE =SIMP(statut='o',typ='R',max=6 ),
572 b_cercle =BLOC( condition = "SECTION=='CERCLE'",
573 CARA =SIMP(statut='o',typ='TXM',max=2,into=("R","EP") ),
574 VALE =SIMP(statut='o',typ='R',max=2 ),
576 FCX =SIMP(statut='f',typ=(fonction) ),
579 COQUE =FACT(statut='f',min=01,max='**',
580 regles=(UN_PARMI('MAILLE','GROUP_MA' ),
581 PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
582 MAILLE =SIMP(statut='f',typ=ma,max='**'),
583 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
584 EPAIS =SIMP(statut='o',typ='R' ),
585 ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2),
586 A_CIS =SIMP(statut='f',typ='R',defaut= 0.8333333E0),
587 COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
588 COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ),
589 EXCENTREMENT =SIMP(statut='f',typ='R' ),
590 INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ),
591 MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
593 CABLE =FACT(statut='f',min=01,max='**',
594 regles=(UN_PARMI('MAILLE','GROUP_MA'),
595 UN_PARMI('A','SECTION') ),
596 MAILLE =SIMP(statut='f',typ=ma,max='**'),
597 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
598 N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ),
599 A =SIMP(statut='f',typ='R' ),
600 SECTION =SIMP(statut='f',typ='R' ),
601 FCX =SIMP(statut='f',typ=(fonction) ),
604 DISCRET =FACT(statut='f',min=01,max='**',
605 regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
606 NOEUD =SIMP(statut='f',typ=no,max='**'),
607 MAILLE =SIMP(statut='f',typ=ma,max='**'),
608 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
609 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
610 REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
611 AMOR_HYST =SIMP(statut='f',typ='R' ),
612 CARA =SIMP(statut='o',typ='TXM',max='**',
613 into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
614 "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
615 "M_T_D_N","M_TR_D_N","M_T_N",
616 "M_T_L", "M_TR_N", "M_TR_L",
617 "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
618 "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
619 VALE =SIMP(statut='o',typ='R',max='**'),
622 ORIENTATION =FACT(statut='f',min=01,max='**',
623 regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
624 MAILLE =SIMP(statut='f',typ=ma,max='**'),
625 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
626 NOEUD =SIMP(statut='f',typ=no,max='**'),
627 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
628 CARA =SIMP(statut='o',typ='TXM',
629 into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
630 VALE =SIMP(statut='o',typ='R',max='**'),
631 PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
632 CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
635 DEFI_ARC =FACT(statut='f',min=01,max='**',
636 regles=(UN_PARMI('MAILLE','GROUP_MA'),
637 UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
638 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
639 PRESENT_PRESENT('ORIE_ARC','RAYON'),
640 EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
641 EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
642 EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
643 EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
644 PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
645 PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
646 MAILLE =SIMP(statut='f',typ=ma,max='**'),
647 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
648 ORIE_ARC =SIMP(statut='f',typ='R'),
649 CENTRE =SIMP(statut='f',typ='R',max='**'),
650 NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1),
651 GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1),
652 POIN_TANG =SIMP(statut='f',typ='R',max='**'),
653 NOEUD_POIN_TANG =SIMP(statut='f',typ=no,max=1),
654 GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno,max=1),
655 RAYON =SIMP(statut='f',typ='R'),
656 COEF_FLEX =SIMP(statut='f',typ='R'),
657 INDI_SIGM =SIMP(statut='f',typ='R'),
658 COEF_FLEX_XY =SIMP(statut='f',typ='R'),
659 INDI_SIGM_XY =SIMP(statut='f',typ='R'),
660 COEF_FLEX_XZ =SIMP(statut='f',typ='R'),
661 INDI_SIGM_XZ =SIMP(statut='f',typ='R'),
662 PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
663 CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
666 MASSIF =FACT(statut='f',min=01,max='**',
667 regles=(UN_PARMI('MAILLE','GROUP_MA'),
668 UN_PARMI('ANGL_REP','ANGL_AXE'),
669 EXCLUS('ANGL_REP','ANGL_AXE'),
670 EXCLUS('ANGL_REP','ORIG_AXE'),
671 PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
672 MAILLE =SIMP(statut='f',typ=ma,max='**'),
673 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
674 ANGL_REP =SIMP(statut='f',typ='R',max=3),
675 ANGL_AXE =SIMP(statut='f',typ='R',max=2),
676 ORIG_AXE =SIMP(statut='f',typ='R',max=3),
678 POUTRE_FLUI =FACT(statut='f',min=01,max='**',
679 regles=(UN_PARMI('MAILLE','GROUP_MA'),),
680 MAILLE =SIMP(statut='f',typ=ma,max='**'),
681 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
682 B_T =SIMP(statut='o',typ='R'),
683 B_N =SIMP(statut='o',typ='R'),
684 B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
685 A_FLUI =SIMP(statut='o',typ='R'),
686 A_CELL =SIMP(statut='o',typ='R'),
687 COEF_ECHELLE =SIMP(statut='o',typ='R'),
690 GRILLE =FACT(statut='f',min=01,max='**',
691 regles=(UN_PARMI('MAILLE','GROUP_MA'),
692 EXCLUS('ANGL_REP','ORIG_AXE'),
693 EXCLUS('EXCENTREMENT','DIST_N'),
694 ENSEMBLE('ORIG_AXE','AXE')),
695 MAILLE =SIMP(statut='f',typ=ma,max='**'),
696 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
697 SECTION_L =SIMP(statut='o',typ='R'),
698 ANGL_REP =SIMP(statut='f',typ='R',max=2),
699 ANGL_L =SIMP(statut='f',typ='R'),
700 POUR_CENT_L =SIMP(statut='f',typ='R'),
701 POUR_CENT_T =SIMP(statut='f',typ='R'),
702 DIST_N =SIMP(statut='f',typ='R'),
703 EXCENTREMENT =SIMP(statut='f',typ='R'),
704 ORIG_AXE =SIMP(statut='f',typ='R',max='**'),
705 AXE =SIMP(statut='f',typ='R',max='**'),
706 COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
707 GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ),
710 RIGI_PARASOL =FACT(statut='f',min=01,max='**',
711 regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
712 UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
713 GROUP_MA =SIMP(statut='o',typ=ma,max='**'),
714 FONC_GROUP =SIMP(statut='f',typ=(fonction) ),
715 COEF_GROUP =SIMP(statut='f',typ='R',max='**'),
716 REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
717 CARA =SIMP(statut='o',typ='TXM',max='**',into=("K_TR_D_N","A_TR_D_N") ),
718 VALE =SIMP(statut='o',typ='R',max='**'),
719 GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
720 NOEUD_CENTRE =SIMP(statut='f',typ=no),
721 COOR_CENTRE =SIMP(statut='f',typ='R',max='**'),
723 ASSE_GRIL =FACT(statut='f',min=01,max='**',
724 regles=(UN_PARMI('MAILLE','GROUP_MA'),),
725 MAILLE =SIMP(statut='f',typ=ma,max='**'),
726 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
727 CARA =SIMP(statut='o',typ='TXM',max='**',
728 into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ),
729 VALE =SIMP(statut='o',typ='R',max='**'),
730 PAS_T =SIMP(statut='o',typ='R'),
731 PAS_N =SIMP(statut='o',typ='R'),
732 ANGL_REP =SIMP(statut='o',typ='R',max='**'),
733 COEF_ECHELLE =SIMP(statut='o',typ='R'),
737 AFFE_SECT =FACT(statut='f',min=1,max='**',
738 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
739 AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
740 PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
742 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
743 MAILLE =SIMP(statut='f',typ=ma,max='**'),
745 TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
746 GROUP_MA_SECT =SIMP(statut='f',typ=grma,max='**'),
747 MAILLE_SECT =SIMP(statut='f',typ=ma,max='**'),
749 MAILLAGE_SECT =SIMP(statut='o',typ=maillage),
750 COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
754 AFFE_FIBRE =FACT(statut='f',min=1,max='**',
755 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
757 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
758 MAILLE =SIMP(statut='f',typ=ma,max='**'),
760 CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
761 VALE =SIMP(statut='o',typ='R',max='**'),
762 COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2),
768 AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca
769 ,fr="Affectation de charges et conditions aux limites mécaniques constantes",
770 docu="U4.44.01-f1",reentrant='n',
771 regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
772 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
773 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',
774 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
775 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT',
776 'LIAISON_UNIL_NO','LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',
777 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE',
778 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
779 'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE',
780 'EFFE_FOND','EVOL_CHAR','ARLEQUIN'),
781 EXCLUS('PRES_CALCULEE','EVOL_CHAR'),
782 EXCLUS('LIAISON_UNIL_NO','CONTACT'),),
784 MODELE =SIMP(statut='o',typ=(modele) ),
785 VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
786 VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
787 # A TERME PRES_CALCULEE N'EXISTERA PLUS
788 EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
790 PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
792 TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul",
793 typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
794 HYDR_CALCULEE =SIMP(statut='f',fr="Champ d hydratation issu d'un autre calcul",
796 SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage issu d'un autre calcul",
797 typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
798 EPSA_CALCULEE =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul",
800 VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ),
802 ARLEQUIN =FACT(statut='f',min=1,max='**',
803 GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'),
804 GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'),
805 GROUP_MA_COLL =SIMP(statut='o',typ=grma,max='**'),
806 regles =(UN_PARMI('POIDS_1','POIDS_2'),),
807 POIDS_1 =SIMP(statut='f',typ='R'),
808 POIDS_2 =SIMP(statut='f',typ='R'),
810 CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**',
811 regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),),
812 APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
813 into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
814 RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
815 LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
816 NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")),
817 METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
818 into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ),
819 PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ),
820 GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
821 MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
822 GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
823 MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
824 b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
825 fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
826 regles=(EXCLUS('DIST_2','COEF_IMPO'),
827 EXCLUS('DIST_1','COEF_IMPO'),),
828 NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")),
829 FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ),
830 REAC_GEOM_INTE =SIMP(statut='f',typ='I',defaut= 2),
831 SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
832 SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
833 COEF_IMPO =SIMP(statut='f',typ='R'),
834 COEF_MULT_2 =SIMP(statut='f',typ='R'),
835 VECT_NORM_2 =SIMP(statut='f',typ='R',max=3),
836 DIST_1 =SIMP(statut='f',typ='R'),
837 DIST_2 =SIMP(statut='f',typ='R'),),
838 b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
839 fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
840 NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
841 FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
842 REAC_GEOM_INTE =SIMP(statut='f',typ='I',defaut= 2),
843 SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
844 SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
845 DIST_1 =SIMP(statut='f',typ='R'),
846 DIST_2 =SIMP(statut='f',typ='R'),
847 b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
848 COULOMB =SIMP(statut='o',typ='R',max=1),
849 COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
850 VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
851 b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ",
852 fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
853 NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
854 E_N =SIMP(statut='f',typ='R'),
855 FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
856 REAC_GEOM_INTE =SIMP(statut='f',typ='I',defaut= 2),
857 SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
858 SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
859 DIST_1 =SIMP(statut='f',typ='R'),
860 DIST_2 =SIMP(statut='f',typ='R'),
861 b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
862 COULOMB =SIMP(statut='o',typ='R',max=1),
863 E_T =SIMP(statut='f',typ='R',
864 fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
865 COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
866 VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),),),
867 b_continue =BLOC(condition = "METHODE == 'CONTINUE' ",
868 fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
869 NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
870 FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
871 INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD")),
872 COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
873 MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
874 ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
875 ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
876 b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
877 COULOMB =SIMP(statut='o',typ='R',max=1),
878 ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
879 COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
880 SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),),
883 DDL_IMPO =FACT(statut='f',min=1,max='**',
884 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
885 AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
886 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
887 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
888 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
889 'VO6','WI6','WO6','WO','WI1','WO1','GONF'),),
890 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
891 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
892 NOEUD =SIMP(statut='f',typ=no,max='**'),
893 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
894 MAILLE =SIMP(statut='f',typ=ma,max='**'),
895 DX =SIMP(statut='f',typ='R' ),
896 DY =SIMP(statut='f',typ='R' ),
897 DZ =SIMP(statut='f',typ='R' ),
898 DRX =SIMP(statut='f',typ='R' ),
899 DRY =SIMP(statut='f',typ='R' ),
900 DRZ =SIMP(statut='f',typ='R' ),
901 GRX =SIMP(statut='f',typ='R' ),
902 PRES =SIMP(statut='f',typ='R' ),
903 PHI =SIMP(statut='f',typ='R' ),
904 TEMP =SIMP(statut='f',typ='R' ),
905 PRE1 =SIMP(statut='f',typ='R' ),
906 PRE2 =SIMP(statut='f',typ='R' ),
907 UI2 =SIMP(statut='f',typ='R' ),
908 UI3 =SIMP(statut='f',typ='R' ),
909 UI4 =SIMP(statut='f',typ='R' ),
910 UI5 =SIMP(statut='f',typ='R' ),
911 UI6 =SIMP(statut='f',typ='R' ),
912 UO2 =SIMP(statut='f',typ='R' ),
913 UO3 =SIMP(statut='f',typ='R' ),
914 UO4 =SIMP(statut='f',typ='R' ),
915 UO5 =SIMP(statut='f',typ='R' ),
916 UO6 =SIMP(statut='f',typ='R' ),
917 VI2 =SIMP(statut='f',typ='R' ),
918 VI3 =SIMP(statut='f',typ='R' ),
919 VI4 =SIMP(statut='f',typ='R' ),
920 VI5 =SIMP(statut='f',typ='R' ),
921 VI6 =SIMP(statut='f',typ='R' ),
922 VO2 =SIMP(statut='f',typ='R' ),
923 VO3 =SIMP(statut='f',typ='R' ),
924 VO4 =SIMP(statut='f',typ='R' ),
925 VO5 =SIMP(statut='f',typ='R' ),
926 VO6 =SIMP(statut='f',typ='R' ),
927 WI2 =SIMP(statut='f',typ='R' ),
928 WI3 =SIMP(statut='f',typ='R' ),
929 WI4 =SIMP(statut='f',typ='R' ),
930 WI5 =SIMP(statut='f',typ='R' ),
931 WI6 =SIMP(statut='f',typ='R' ),
932 WO2 =SIMP(statut='f',typ='R' ),
933 WO3 =SIMP(statut='f',typ='R' ),
934 WO4 =SIMP(statut='f',typ='R' ),
935 WO5 =SIMP(statut='f',typ='R' ),
936 WO6 =SIMP(statut='f',typ='R' ),
937 WO =SIMP(statut='f',typ='R' ),
938 WI1 =SIMP(statut='f',typ='R' ),
939 WO1 =SIMP(statut='f',typ='R' ),
940 GONF =SIMP(statut='f',typ='R' ),
943 EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**',
944 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
945 GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'),
946 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
947 MAILLE =SIMP(statut='f',typ=ma,max='**'),
948 PRES =SIMP(statut='o',typ='R' ),
951 EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
953 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
954 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
955 AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
956 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
957 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
958 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
959 MAILLE =SIMP(statut='f',typ=ma,max='**'),
960 EPXX =SIMP(statut='f',typ='R' ),
961 EPYY =SIMP(statut='f',typ='R' ),
962 EPZZ =SIMP(statut='f',typ='R' ),
963 EPXY =SIMP(statut='f',typ='R' ),
964 EPXZ =SIMP(statut='f',typ='R' ),
965 EPYZ =SIMP(statut='f',typ='R' ),
966 EPX =SIMP(statut='f',typ='R' ),
967 KY =SIMP(statut='f',typ='R' ),
968 KZ =SIMP(statut='f',typ='R' ),
969 EXX =SIMP(statut='f',typ='R' ),
970 EYY =SIMP(statut='f',typ='R' ),
971 EXY =SIMP(statut='f',typ='R' ),
972 KXX =SIMP(statut='f',typ='R' ),
973 KYY =SIMP(statut='f',typ='R' ),
974 KXY =SIMP(statut='f',typ='R' ),
977 FACE_IMPO =FACT(statut='f',min=1,max='**',
978 regles=(UN_PARMI('GROUP_MA','MAILLE',),
979 AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
980 'TEMP','PRE1','PRE2','DNOR','DTAN'),
984 EXCLUS('DNOR','DRX'),
985 EXCLUS('DNOR','DRY'),
986 EXCLUS('DNOR','DRZ'),
990 EXCLUS('DTAN','DRX'),
991 EXCLUS('DTAN','DRY'),
992 EXCLUS('DTAN','DRZ'),),
993 # rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
994 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
995 MAILLE =SIMP(statut='f',typ=ma,max='**'),
996 DX =SIMP(statut='f',typ='R' ),
997 DY =SIMP(statut='f',typ='R' ),
998 DZ =SIMP(statut='f',typ='R' ),
999 DRX =SIMP(statut='f',typ='R' ),
1000 DRY =SIMP(statut='f',typ='R' ),
1001 DRZ =SIMP(statut='f',typ='R' ),
1002 DNOR =SIMP(statut='f',typ='R' ),
1003 DTAN =SIMP(statut='f',typ='R' ),
1004 GRX =SIMP(statut='f',typ='R' ),
1005 PRES =SIMP(statut='f',typ='R' ),
1006 PHI =SIMP(statut='f',typ='R' ),
1007 TEMP =SIMP(statut='f',typ='R' ),
1008 PRE1 =SIMP(statut='f',typ='R' ),
1009 PRE2 =SIMP(statut='f',typ='R' ),
1011 FLUX_THM_REP =FACT(statut='f',min=1,max='**',
1012 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1013 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1014 AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
1015 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1016 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1017 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1018 FLUN =SIMP(statut='f',typ='R' ),
1019 FLUN_HYDR1 =SIMP(statut='f',typ='R' ),
1020 FLUN_HYDR2 =SIMP(statut='f',typ='R' ),
1023 FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
1025 regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
1026 AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
1027 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1028 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1029 FX =SIMP(statut='f',typ='R' ),
1030 FY =SIMP(statut='f',typ='R' ),
1031 FZ =SIMP(statut='f',typ='R' ),
1032 MX =SIMP(statut='f',typ='R' ),
1033 MY =SIMP(statut='f',typ='R' ),
1034 MZ =SIMP(statut='f',typ='R' ),
1037 FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=1,max='**',
1038 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1039 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1040 AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
1041 PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
1042 PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
1043 PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
1044 PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
1045 PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
1046 PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
1047 PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
1048 PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
1049 PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
1050 PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
1051 PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
1052 PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
1053 # rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
1054 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1055 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1056 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1058 FX =SIMP(statut='f',typ='R' ),
1059 FY =SIMP(statut='f',typ='R' ),
1060 FZ =SIMP(statut='f',typ='R' ),
1061 MX =SIMP(statut='f',typ='R' ),
1062 MY =SIMP(statut='f',typ='R' ),
1063 MZ =SIMP(statut='f',typ='R' ),
1065 F1 =SIMP(statut='f',typ='R' ),
1066 F2 =SIMP(statut='f',typ='R' ),
1067 F3 =SIMP(statut='f',typ='R' ),
1068 MF1 =SIMP(statut='f',typ='R' ),
1069 MF2 =SIMP(statut='f',typ='R' ),
1071 PRES =SIMP(statut='f',typ='R' ),
1072 PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
1075 FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
1077 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
1078 AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
1079 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1080 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1081 FX =SIMP(statut='f',typ='R' ),
1082 FY =SIMP(statut='f',typ='R' ),
1083 FZ =SIMP(statut='f',typ='R' ),
1084 MX =SIMP(statut='f',typ='R' ),
1085 MY =SIMP(statut='f',typ='R' ),
1086 MZ =SIMP(statut='f',typ='R' ),
1088 FORCE_ELEC =FACT(statut='f',
1089 fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
1091 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1092 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1093 AU_MOINS_UN('FX','FY','FZ','POSITION'),
1094 EXCLUS('FX','POSITION'),
1095 EXCLUS('FY','POSITION'),
1096 EXCLUS('FZ','POSITION'),),
1097 # trop de regles : les blocs conditionnels permettent d en suprimer
1098 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1099 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1100 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1102 FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
1103 FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
1104 FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
1106 POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
1107 b_para =BLOC ( condition = "POSITION == 'PARA'",
1108 regles=(UN_PARMI('TRANS','DIST'),),
1109 TRANS =SIMP(statut='f',typ='R',max=3),
1110 DIST =SIMP(statut='f',typ='R' ),
1111 b_point2 =BLOC ( condition = "DIST != None",
1112 POINT2 =SIMP(statut='o',typ='R',max=3),
1115 b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
1116 POINT1 =SIMP(statut='o',typ='R',max=3),
1117 POINT2 =SIMP(statut='o',typ='R',max=3),
1121 FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
1123 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
1124 AU_MOINS_UN('FX','FY','FZ'),),
1125 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1126 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1127 FX =SIMP(statut='f',typ='R' ),
1128 FY =SIMP(statut='f',typ='R' ),
1129 FZ =SIMP(statut='f',typ='R' ),
1131 FORCE_INTERNE =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",
1133 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1134 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1135 AU_MOINS_UN('FX','FY','FZ' ),),
1136 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1137 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1138 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1139 FX =SIMP(statut='f',typ='R' ),
1140 FY =SIMP(statut='f',typ='R' ),
1141 FZ =SIMP(statut='f',typ='R' ),
1144 IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=1,max='**',
1145 regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
1146 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1147 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1148 IMPE =SIMP(statut='o',typ='R' ),
1151 FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=1,max='**',
1152 regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
1153 AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
1154 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1155 NOEUD =SIMP(statut='f',typ=no,max='**'),
1156 FX =SIMP(statut='f',typ='R' ),
1157 FY =SIMP(statut='f',typ='R' ),
1158 FZ =SIMP(statut='f',typ='R' ),
1159 MX =SIMP(statut='f',typ='R' ),
1160 MY =SIMP(statut='f',typ='R' ),
1161 MZ =SIMP(statut='f',typ='R' ),
1162 ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
1164 FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=1,max='**',
1165 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1166 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1167 AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
1168 PRESENT_ABSENT('FX','N','VY','VZ'),
1169 PRESENT_ABSENT('FY','N','VY','VZ'),
1170 PRESENT_ABSENT('FZ','N','VY','VZ'),
1171 PRESENT_ABSENT('N','FX','FY','FZ'),
1172 PRESENT_ABSENT('VY','FX','FY','FZ'),
1173 PRESENT_ABSENT('VZ','FX','FY','FZ'),),
1174 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1175 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1176 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1177 TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
1178 # rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
1179 FX =SIMP(statut='f',typ='R' ),
1180 FY =SIMP(statut='f',typ='R' ),
1181 FZ =SIMP(statut='f',typ='R' ),
1183 N =SIMP(statut='f',typ='R' ),
1184 VY =SIMP(statut='f',typ='R' ),
1185 VZ =SIMP(statut='f',typ='R' ),
1189 FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=1,max='**',
1190 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1191 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
1192 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1193 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1194 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1195 PRES =SIMP(statut='f',typ='R' ),
1198 INTE_ELEC =FACT(statut='f',fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
1200 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1201 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1202 AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
1203 EXCLUS('TRANS','SYME'),),
1204 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1205 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1206 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1207 GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
1208 MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
1209 TRANS =SIMP(statut='f',typ='R',max='**'),
1210 SYME =SIMP(statut='f',typ='R',max='**'),
1213 LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls d'un concept cham_nno",
1215 # type de cham_no CO()
1216 CHAM_NO =SIMP(statut='o',typ=cham_no), #CO()
1217 COEF_IMPO =SIMP(statut='o',typ='R' ),
1218 NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
1221 LIAISON_COQUE =FACT(statut='f',min=1,max='**',
1222 GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
1223 MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
1224 GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
1225 NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
1226 GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
1227 MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
1228 GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
1229 NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
1230 NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
1232 LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
1234 regles=(UN_PARMI('GROUP_NO','NOEUD'),),
1235 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1236 NOEUD =SIMP(statut='f',typ=no,max='**'),
1237 DDL =SIMP(statut='o',typ='TXM',max='**'),
1238 COEF_MULT =SIMP(statut='o',typ='R',max='**'),
1239 COEF_IMPO =SIMP(statut='o',typ='R' ),
1241 LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=1,max='**',
1242 regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
1243 UN_PARMI('GROUP_NO_2','NOEUD_2'),),
1244 OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ),
1245 GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
1246 MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
1247 GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'),
1248 NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
1249 NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
1250 CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ),
1251 AXE_POUTRE =SIMP(statut='f',typ='R',max=3),
1252 ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
1255 LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
1257 regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
1258 UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
1259 EXCLUS('GROUP_MA_1','GROUP_NO_2'),
1260 EXCLUS('GROUP_MA_1','NOEUD_2'),
1261 EXCLUS('GROUP_NO_1','GROUP_MA_2'),
1262 EXCLUS('GROUP_NO_1','MAILLE_2'),
1263 EXCLUS('MAILLE_1','GROUP_NO_2'),
1264 EXCLUS('MAILLE_1','NOEUD_2'),
1265 EXCLUS('NOEUD_1','GROUP_MA_2'),
1266 EXCLUS('NOEUD_1','MAILLE_2'),
1267 EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
1269 GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),
1270 MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),
1271 GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),
1272 MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),
1273 GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'),
1274 NOEUD_1 =SIMP(statut='f',typ=no,max='**'),
1275 GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'),
1276 NOEUD_2 =SIMP(statut='f',typ=no,max='**'),
1278 SANS_NOEUD =SIMP(statut='f',typ=no,max='**'),
1279 SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1280 DDL_1 =SIMP(statut='o',typ='TXM',max='**'),
1281 COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'),
1282 DDL_2 =SIMP(statut='o',typ='TXM',max='**'),
1283 COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'),
1284 COEF_IMPO =SIMP(statut='o',typ='R' ),
1285 SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1286 TRAN =SIMP(statut='f',typ='R',max=3),
1287 ANGL_NAUT =SIMP(statut='f',typ='R',max=3),
1288 CENTRE =SIMP(statut='f',typ='R',max=3),
1291 LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
1293 regles=(UN_PARMI('GROUP_NO','NOEUD'),
1294 UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
1295 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1296 NOEUD =SIMP(statut='f',typ=no,max='**'),
1297 ANGL_NAUT =SIMP(statut='o',typ='R',max=3),
1298 DX =SIMP(statut='f',typ='R' ),
1299 DY =SIMP(statut='f',typ='R' ),
1300 DZ =SIMP(statut='f',typ='R' ),
1301 DRX =SIMP(statut='f',typ='R' ),
1302 DRY =SIMP(statut='f',typ='R' ),
1303 DRZ =SIMP(statut='f',typ='R' ),
1306 LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",min=1,max='**',
1307 regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
1308 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1309 NOEUD =SIMP(statut='f',typ=no,max='**'),
1310 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1311 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1312 NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
1315 LIAISON_UNIF =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
1317 regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
1318 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1319 NOEUD =SIMP(statut='f',typ=no,max='**'),
1320 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1321 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1322 DDL =SIMP(statut='o',typ='TXM',max='**'),
1325 LIAISON_UNIL_NO =FACT(statut='f',min=1,max='**',
1326 regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
1327 UN_PARMI('GROUP_MA_2','MAILLE_2'),),
1328 GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),# CO()
1329 MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),# CO()
1330 GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),# CO()
1331 MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),# CO()
1332 SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1333 TRAN =SIMP(statut='f',typ='R',max=3 ),
1334 ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ),
1335 CENTRE =SIMP(statut='f',typ='R',max=3 ),
1336 ANGLE_MAX =SIMP(statut='f',typ='R' ),
1337 VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
1338 FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",
1339 into=("SANS","TRESCA","COULOMB") ),
1340 METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
1341 into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),
1342 COULOMB =SIMP(statut='f',typ='R' ),
1343 TRESCA =SIMP(statut='f',typ='R' ),
1344 E_T =SIMP(statut='f',typ='R' ),
1345 COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
1346 CONTACT =SIMP(statut='f',typ='TXM',into=("MAINTENU",) ),
1347 JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
1350 LIAISON_MAIL =FACT(statut='f',min=1,max='**',
1351 regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
1352 AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
1353 PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
1354 GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'),
1355 MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'),
1356 GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'),
1357 MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'),
1358 GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'),
1359 NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'),
1360 TRAN =SIMP(statut='f',typ='R',max=3 ),
1361 ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ),
1362 CENTRE =SIMP(statut='f',typ='R',max=3 ),
1363 DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
1364 DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
1367 ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=1,max='**',
1368 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
1369 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1370 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1371 PRES =SIMP(statut='o',typ='R' ),
1374 PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
1376 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
1377 PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
1378 AU_MOINS_UN('PRES','CISA_2D' ),),
1379 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1380 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1381 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1382 PRES =SIMP(statut='f',typ='R' ),
1383 CISA_2D =SIMP(statut='f',typ='R' ),
1386 PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
1388 RELA_CINE_BP =FACT(statut='f',min=1,max='**',
1389 CABLE_BP =SIMP(statut='o',typ=cabl_precont ),
1390 SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1391 RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1393 ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation",min=4,max=4),
1394 b_rotation =BLOC ( condition = "ROTATION != None",
1395 CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),),
1397 VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=1,max='**',
1398 regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
1399 GROUP_MA =SIMP(statut='f',typ=grma,max='**'),
1400 MAILLE =SIMP(statut='f',typ=ma,max='**'),
1401 VNOR =SIMP(statut='o',typ='R' ),
1403 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
1406 def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
1407 SOLVEUR,NUME_DDL,CHARGE,INST,**args):
1409 Ecriture de la macro MACRO_MATR_ASSE
1412 # On met le mot cle NUME_DDL dans une variable locale pour le proteger
1414 # On importe les definitions des commandes a utiliser dans la macro
1415 # Le nom de la variable doit etre obligatoirement le nom de la commande
1416 CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM')
1417 NUME_DDL =self.get_cmd('NUME_DDL')
1418 ASSE_MATRICE =self.get_cmd('ASSE_MATRICE')
1419 # La macro compte pour 1 dans la numerotation des commandes
1423 methode=SOLVEUR['METHODE']
1425 if SOLVEUR['RENUM']:
1426 renum=SOLVEUR['RENUM']
1429 if renum not in ('SANS','RCMK'):
1431 self.cr.fatal("Avec methode LDLT, RENUM doit etre SANS ou RCMK.")
1433 elif methode=='MULT_FRONT':
1434 if SOLVEUR['RENUM']:
1435 renum=SOLVEUR['RENUM']
1438 if renum not in ('MDA','MD','METIS'):
1440 self.cr.fatal("Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.")
1442 elif methode=='GCPC':
1443 if SOLVEUR['RENUM']:
1444 renum=SOLVEUR['RENUM']
1447 if renum not in ('SANS','RCMK'):
1449 self.cr.fatal("Avec methode GCPC, RENUM doit etre SANS ou RCMK.")
1452 methode='MULT_FRONT'
1455 if numeddl in self.sdprods:
1456 # Si le concept numeddl est dans self.sdprods
1457 # il doit etre produit par la macro
1458 # il faudra donc appeler la commande NUME_DDL
1469 if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR',
1470 'RIGI_THER','RIGI_ACOU') :
1472 self.cr.fatal("LA PREMIERE OPTION DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
1475 if m['SIEF_ELGA']!=None and option!='RIGI_GEOM':
1477 self.cr.fatal("SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM")
1480 if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'):
1482 self.cr.fatal("MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER")
1485 if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR':
1487 self.cr.fatal("PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR")
1490 motscles={'OPTION':option}
1491 if option == 'AMOR_MECA':
1492 if (not lrigel or not lmasel):
1494 self.cr.fatal("""POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE
1495 RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""")
1497 if CHAM_MATER != None:
1498 motscles['RIGI_MECA'] =rigel
1499 motscles['MASS_MECA'] =masel
1501 if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'):
1502 motscles['CHARGE'] =CHARGE
1503 if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER
1504 if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM
1505 if INST != None: motscles['INST'] =INST
1506 if m['SIEF_ELGA'] : motscles['SIEF_ELGA'] =m['SIEF_ELGA']
1507 if m['MODE_FOURIER']: motscles['MODE_FOURIER']=m['MODE_FOURIER']
1508 if m['THETA'] : motscles['THETA'] =m['THETA']
1509 if m['PROPAGATION'] : motscles['PROPAGATION'] =m['PROPAGATION']
1511 __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles)
1513 if option == 'RIGI_MECA':
1516 if option == 'MASS_MECA':
1520 if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'):
1521 self.DeclareOut('num',numeddl)
1522 # On peut passer des mots cles egaux a None. Ils sont ignores
1523 num=NUME_DDL(MATR_RIGI=__a,METHODE=methode,RENUM=renum)
1527 self.DeclareOut('mm',m['MATRICE'])
1528 mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num)
1531 def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
1532 if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats")
1533 if not NUME_DDL: raise AsException("Impossible de typer les concepts resultats")
1534 self.type_sdprod(NUME_DDL,nume_ddl)
1538 if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
1539 "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
1540 "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
1541 "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
1543 if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
1545 if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
1546 "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
1548 if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c
1550 self.type_sdprod(m['MATRICE'],t)
1552 MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-c",
1553 sd_prod=macro_matr_asse_prod,
1554 fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
1555 MODELE =SIMP(statut='o',typ=modele),
1556 CHAM_MATER =SIMP(statut='f',typ=cham_mater),
1557 CARA_ELEM =SIMP(statut='f',typ=cara_elem),
1558 CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou)),
1559 INST =SIMP(statut='f',typ='R'),
1560 NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)),
1561 SOLVEUR =FACT(statut='d',min=01,max=01,
1562 METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
1563 into=("LDLT","MULT_FRONT","GCPC")),
1564 RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
1566 MATR_ASSE =FACT(statut='o',min=01,max='**',
1567 MATRICE =SIMP(statut='o',typ=(matr_asse,CO)),
1568 OPTION =SIMP(statut='o',typ='TXM',
1569 into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
1570 "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
1571 "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
1572 "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",
1573 "RIGI_THER","MASS_THER",
1574 "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
1575 "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
1577 SIEF_ELGA =SIMP(statut='f',typ=cham_elem_sief_r),
1578 MODE_FOURIER =SIMP(statut='f',typ='I'),
1579 THETA =SIMP(statut='f',typ=theta_geom),
1580 PROPAGATION =SIMP(statut='f',typ='R'),
1582 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1583 INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
1586 def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
1587 if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
1588 if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
1589 if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
1590 if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
1591 if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
1592 raise AsException("type de concept resultat non prevu")
1594 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod,
1595 fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes",
1596 docu="U4.52.03-e",reentrant='n',
1597 MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
1598 MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
1599 MATR_C =SIMP(statut='f',position='global',typ=matr_asse_depl_r ),
1600 METHODE =SIMP(statut='f',position='global',typ='TXM',defaut="SORENSEN",
1601 into=("TRI_DIAG","JACOBI","SORENSEN") ),
1602 TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",
1603 into=("MODE_FLAMB","DYNAMIQUE"),
1604 fr="Type d analyse" ),
1605 OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
1606 fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
1608 b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
1609 CALC_FREQ =FACT(statut='d',min=0,max=1,
1610 OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
1611 fr="Choix de l option et par conséquent du shift du problème modal" ),
1612 b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
1613 NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
1615 b_centre =BLOC(condition = "OPTION == 'CENTRE'",
1616 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
1617 CHAR_CRIT =SIMP(statut='o',typ='R',min=1,max=1,
1618 fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
1620 b_bande =BLOC(condition = "(OPTION == 'BANDE')",
1621 fr="Recherche des valeurs propres dans une bande donnée",
1622 CHAR_CRIT =SIMP(statut='o',typ='R',min=2,max=2,
1623 fr="Valeur des deux charges critiques délimitant la bande de recherche"),
1625 APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
1626 fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
1627 regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
1628 DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
1629 COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
1630 b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
1631 PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
1632 NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
1633 PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
1634 NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
1636 b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
1637 PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
1638 NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
1639 PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
1640 NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
1642 b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
1643 PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
1644 NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
1645 PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
1647 NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
1648 NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
1649 PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
1650 SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
1654 b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
1655 CALC_FREQ =FACT(statut='d',min=0,max=1,
1656 OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
1657 fr="Choix de l option et par conséquent du shift du problème modal" ),
1658 b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
1659 NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
1661 b_centre =BLOC(condition = "OPTION == 'CENTRE'",
1662 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
1663 FREQ =SIMP(statut='o',typ='R',min=1,max=1,
1664 fr="Fréquence autour de laquelle on cherche les fréquences propres"),
1665 AMOR_REDUIT =SIMP(statut='f',typ='R',max=1,),
1666 NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
1668 b_bande =BLOC(condition = "(OPTION == 'BANDE')",
1669 fr="Recherche des valeurs propres dans une bande donnée",
1670 FREQ =SIMP(statut='o',typ='R',min=2,max=2,
1671 fr="Valeur des deux fréquences délimitant la bande de recherche"),
1673 APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
1674 fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
1675 regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
1676 DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
1677 COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
1678 b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
1679 PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
1680 NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
1681 PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
1682 NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
1684 b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
1685 PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
1686 NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
1687 PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
1688 NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
1690 b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
1691 PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
1692 NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
1693 PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
1695 NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
1696 NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
1697 PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
1698 SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
1702 VERI_MODE =FACT(statut='d',min=0,max=1,
1703 STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1704 PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
1705 SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
1706 fr="Valeur limite admise pour l ereur a posteriori des modes" ),
1707 STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1709 STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
1710 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
1711 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1714 def norm_mode_prod(MODE,**args ):
1715 if AsType(MODE) == mode_meca : return mode_meca
1716 if AsType(MODE) == mode_meca_c : return mode_meca_c
1717 if AsType(MODE) == mode_flamb : return mode_flamb
1718 raise AsException("type de concept resultat non prevu")
1720 NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod,
1721 fr="Normalisation de modes propres",
1722 docu="U4.52.11-e",reentrant='f',
1723 regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
1724 MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
1725 NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
1726 into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
1727 NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
1728 b_noeud =BLOC(condition = "NOEUD != None",
1729 NOM_CMP =SIMP(statut='o',typ='TXM' ),
1731 AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
1732 SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
1733 MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ),
1734 MODE_SIGNE =FACT(statut='f',min=00,max=01,fr="Imposer un signe sur une des composantes des modes",
1735 NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
1736 NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
1737 SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
1738 fr="Choix du signe" ),
1740 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1741 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
1744 def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
1745 if (MODE_STAT != None) : return mode_stat_depl
1746 if (PSEUDO_MODE !=None) : return mode_stat_acce
1747 if (FORCE_NODALE != None) : return mode_stat_forc
1748 raise AsException("type de concept resultat non prevu")
1749 MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
1750 fr="Calcul de modes statiques",
1751 docu="U4.52.14-e",reentrant='n',
1752 MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ),
1753 MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ),
1754 regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),),
1755 MODE_STAT =FACT(statut='f',min=01,max='**',
1756 regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
1757 UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
1758 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
1759 NOEUD =SIMP(statut='f',typ=no,max='**'),
1760 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1761 TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
1762 AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
1763 SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
1765 FORCE_NODALE =FACT(statut='f',min=01,max='**',
1766 regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
1767 UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
1768 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ),
1769 NOEUD =SIMP(statut='f',typ=no,max='**'),
1770 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1771 TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ),
1772 AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
1773 SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
1775 PSEUDO_MODE =FACT(statut='f',min=01,max='**',
1776 regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
1777 AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
1778 DIRECTION =SIMP(statut='f',typ='R',min=3,max=3),
1779 TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)),
1780 NOEUD =SIMP(statut='f',typ=no,max='**'),
1781 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1782 b_dir =BLOC(condition = "DIRECTION != None",
1783 NOM_DIR =SIMP(statut='f',typ='TXM' ),),
1784 b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
1785 regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
1786 TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1787 AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
1788 SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
1791 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1792 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
1795 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8,
1796 fr="Définition d une suite croissante de réels",
1797 docu="U4.34.01-f",reentrant='n',
1798 regles=(UN_PARMI('VALE','DEBUT',),
1799 EXCLUS('VALE','INTERVALLE'),
1800 ENSEMBLE('DEBUT','INTERVALLE')),
1801 VALE =SIMP(statut='f',typ='R',max='**'),
1802 DEBUT =SIMP(statut='f',typ='R'),
1803 INTERVALLE =FACT(statut='f',min=01,max='**',
1804 regles=(UN_PARMI('NOMBRE','PAS'),),
1805 JUSQU_A =SIMP(statut='o',typ='R'),
1806 NOMBRE =SIMP(statut='f',typ='I'),
1807 PAS =SIMP(statut='f',typ='R'),
1809 INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
1810 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1813 def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None):
1814 if IS != None : return entier
1815 if R8 != None : return reel
1816 if TX != None : return chaine
1817 if C8 != None : return complexe
1818 if LS != None : return liste
1819 raise AsException("type de concept resultat non prevu")
1821 DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
1822 fr="Affectation d une valeur à une variable Superviseur",
1823 docu="U4.31.04-e1",reentrant='f',
1824 regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
1825 IS =SIMP(statut='f',typ='I',max='**'),
1826 R8 =SIMP(statut='f',typ='R',max='**'),
1827 TX =SIMP(statut='f',typ='TXM',max='**'),
1828 C8 =SIMP(statut='f',typ='C',max='**'),
1829 LS =SIMP(statut='f',typ='L',max='**'),
1832 FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
1833 fr="Définition d une fonction",reentrant = 'n',
1834 regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
1835 REEL = SIMP(typ = 'shell',max=1),
1836 ENTIER = SIMP(typ = 'shell',max=1),
1837 COMPLEXE = SIMP(typ = 'shell',max=1),
1840 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
1841 docu="U4.32.01-d1",reentrant='f',
1842 regles=(UN_PARMI('VALE_R','LIST_PARA'),),
1843 FONCTION =SIMP(statut='o',typ=fonction ),
1844 NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
1845 VALE_R =SIMP(statut='f',typ='R',max='**'),
1846 LIST_PARA =SIMP(statut='f',typ=listr8 ),
1847 INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
1848 PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
1849 PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
1850 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1851 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
1854 def INCLUDE_prod(self,UNITE,**args):
1855 """ Fonction sd_prod pour la macro include
1857 # Si unite a change on reevalue le fichier associe
1858 if not hasattr(self,'unite') or self.unite != UNITE:
1859 f,text=self.get_file(unite=UNITE)
1861 self.fichier_init = f
1862 # on execute le texte fourni dans le contexte forme par
1863 # le contexte de l etape pere (global au sens Python)
1864 # et le contexte de l etape (local au sens Python)
1865 code=compile(text,f,'exec')
1866 if self.jdc and self.jdc.par_lot == 'NON':
1867 # On est en mode commande par commande
1868 # On teste la validite de la commande avec interruption eventuelle
1870 self.parent.cr.add(cr)
1871 if not cr.estvide():
1875 self.contexte_fichier_init = d
1876 exec code in self.parent.g_context,d
1878 def INCLUDE_context(self,d):
1879 """ Fonction op_init pour macro INCLUDE
1881 for k,v in self.g_context.items():
1884 INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
1885 fr="Débranchement vers un fichier de commandes secondaires",
1887 sd_prod=INCLUDE_prod,
1888 op_init=INCLUDE_context,
1889 UNITE = SIMP(statut='o',typ='I'),
1890 INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
1893 def calc_char_seisme_prod(MATR_MASS,**args ):
1894 if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
1895 raise AsException("type de concept resultat non prevu")
1897 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod,
1898 docu="U4.63.01-e",reentrant='n',
1899 regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
1900 MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
1901 DIRECTION =SIMP(statut='o',typ='R',max=06,fr="Directions du séisme imposé"),
1902 MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1903 MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
1904 b_mode_stat =BLOC ( condition = "MODE_STAT != None",
1905 regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
1906 NOEUD =SIMP(statut='f',typ=no,max='**'),
1907 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
1909 TITRE =SIMP(statut='f',typ='TXM',max='**'),
1912 def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,**args):
1914 Ecriture de la macro MACRO_PROJ_BASE
1917 # On importe les definitions des commandes a utiliser dans la macro
1918 NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE')
1919 PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
1920 PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
1921 # La macro compte pour 1 dans la numerotation des commandes
1927 for m in MATR_ASSE_GENE:
1929 if (iocc==1 or (m['PROFIL']!=nompro)):
1930 __num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=m['PROFIL'])
1933 if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE']
1934 elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
1937 self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
1939 self.DeclareOut('mm',m['MATRICE'])
1940 mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=__num,NB_VECT=NB_VECT,**motscles)
1944 for v in VECT_ASSE_GENE:
1946 if (iocc==1 and not MATR_ASSE_GENE):
1947 __num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE='DIAG')
1949 if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE']
1950 elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
1953 self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
1955 motscles['TYPE_VECT']=v['TYPE_VECT']
1956 self.DeclareOut('vv',v['VECTEUR'])
1957 vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=__num,NB_VECT=NB_VECT,**motscles)
1962 def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
1963 if MATR_ASSE_GENE != None:
1964 for m in MATR_ASSE_GENE:
1965 self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
1966 self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
1967 if VECT_ASSE_GENE != None:
1968 for v in VECT_ASSE_GENE:
1969 self.type_sdprod(v['VECTEUR'],vect_asse_gene)
1972 MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-c",
1973 sd_prod=macro_proj_base_prod,
1974 fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs",
1975 BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene) ),
1976 NB_VECT =SIMP(statut='f',typ='I',defaut= 9999),
1977 MATR_ASSE_GENE =FACT(statut='f',min=01,max='**',
1978 MATRICE =SIMP(statut='o',typ=(CO,matr_asse)),
1979 MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r),
1980 MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r),
1981 PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
1983 VECT_ASSE_GENE =FACT(statut='f',min=01,max='**',
1984 VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)),
1985 TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"),
1986 VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r),
1987 VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene),
1989 INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
1992 RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
1993 fr="Retour au fichier de commandes appelant",
1996 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle
1997 ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire",
1998 docu="U4.44.21-e",reentrant='n',
1999 TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE",
2000 into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
2001 "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
2002 "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
2003 "GUID_B_CARTE_900","GUID_C_CARTE_900",
2004 "GUID_D_CARTE_900","GUID_E_CARTE_900",
2005 "GUID_F_CARTE_900","GUID_A_CARTE_1300",
2006 "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
2007 "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
2008 "GUID_F_CARTE_1300","GUID_A_CARSP_900",
2009 "GUID_B_CARSP_900","GUID_C_CARSP_900",
2010 "GUID_D_CARSP_900","GUID_E_CARSP_900",
2011 "GUID_F_CARSP_900","GUID_A_CARSP_1300",
2012 "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
2013 "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
2014 "GUID_F_CARSP_1300","GUID_A_GCONT_900",
2015 "GUID_B_GCONT_900","GUID_C_GCONT_900",
2016 "GUID_D_GCONT_900","GUID_E_GCONT_900",
2017 "GUID_F_GCONT_900","GUID_A_GCONT_1300",
2018 "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
2019 "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
2020 "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
2021 "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
2022 "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
2023 "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
2024 "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
2025 "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
2026 "GUID_F_GCOMB_1300",) ),
2027 VALE =SIMP(statut='f',typ='R',max='**'),
2028 VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"),
2031 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene,
2032 fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale",
2033 docu="U4.53.21-e",reentrant='f',
2034 regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
2035 PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
2036 METHODE =SIMP(statut='f',typ='TXM',defaut="EULER",
2037 into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
2038 MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
2039 RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ),
2040 AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ),
2041 AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
2042 LIST_AMOR =SIMP(statut='f',typ=listr8 ),
2043 MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
2044 MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
2046 ETAT_INIT =FACT(statut='f',min=01,max=01,
2047 regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
2048 EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
2049 RESU_GENE =SIMP(statut='f',typ=tran_gene ),
2050 b_resu_gene =BLOC(condition = "RESU_GENE != None",
2051 INST_INIT =SIMP(statut='f',typ='R' ),
2052 PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
2053 CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2055 DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
2056 VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
2058 INCREMENT =FACT(statut='o',min=01,max='**',
2059 INST_INIT =SIMP(statut='f',typ='R' ),
2060 INST_FIN =SIMP(statut='o',typ='R' ),
2061 PAS =SIMP(statut='f',typ='R' ),
2062 VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2063 VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
2064 COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ),
2065 COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
2066 PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
2067 NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
2068 NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ),
2070 ARCHIVAGE =FACT(statut='f',min=01,max=01,
2071 regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
2072 LIST_ARCH =SIMP(statut='f',typ=listis ),
2073 PAS_ARCH =SIMP(statut='f',typ='I' ),
2075 NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
2076 RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
2077 LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
2079 EXCIT =FACT(statut='f',min=01,max='**',
2080 regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
2081 PRESENT_PRESENT('ACCE','VITE','DEPL'),
2082 PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
2083 PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'),
2084 PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),
2085 PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
2086 PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
2087 VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
2088 NUME_MODE =SIMP(statut='f',typ='I' ),
2089 FONC_MULT =SIMP(statut='f',typ=fonction ),
2090 COEF_MULT =SIMP(statut='f',typ='R' ),
2091 ACCE =SIMP(statut='f',typ=fonction ),
2092 VITE =SIMP(statut='f',typ=fonction ),
2093 DEPL =SIMP(statut='f',typ=fonction ),
2094 MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2095 DIRECTION =SIMP(statut='f',typ='R',max='**'),
2096 b_loca =BLOC(condition= "DIRECTION != None",
2097 regles=(EXCLUS('NOEUD','GROUP_NO'),),
2098 NOEUD =SIMP(statut='f',typ=no,max='**'),
2099 GROUP_NO =SIMP(statut='f',typ=grno,max='**'),
2101 CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
2102 D_FONC_DT =SIMP(statut='f',typ=fonction ),
2103 D_FONC_DT2 =SIMP(statut='f',typ=fonction ),
2105 CHOC =FACT(statut='f',min=01,max='**',
2106 regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
2107 PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
2108 PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
2109 INTITULE =SIMP(statut='f',typ='TXM' ),
2110 NOEUD_1 =SIMP(statut='f',typ=no),
2111 NOEUD_2 =SIMP(statut='f',typ=no),
2112 GROUP_NO_1 =SIMP(statut='f',typ=grno),
2113 GROUP_NO_2 =SIMP(statut='f',typ=grno),
2114 OBSTACLE =SIMP(statut='o',typ=obstacle ),
2115 ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3),
2116 NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3),
2117 ANGL_VRIL =SIMP(statut='f',typ='R' ),
2118 JEU =SIMP(statut='f',typ='R',defaut= 1. ),
2119 DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
2120 DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ),
2121 SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ),
2122 SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ),
2123 REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
2124 RIGI_NOR =SIMP(statut='f',typ='R' ),
2125 AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2126 RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2127 AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2128 COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2130 LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2131 b_lame =BLOC(condition="LAME_FLUIDE=='OUI'",
2132 ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2133 BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2134 CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2135 DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2138 VERI_CHOC =FACT(statut='f',min=01,max='**',
2139 STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2140 SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ),
2142 FLAMBAGE =FACT(statut='f',min=01,max='**',
2143 regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
2144 PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
2145 PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
2146 NOEUD_1 =SIMP(statut='f',typ=no),
2147 NOEUD_2 =SIMP(statut='f',typ=no),
2148 GROUP_NO_1 =SIMP(statut='f',typ=grno),
2149 GROUP_NO_2 =SIMP(statut='f',typ=grno),
2150 OBSTACLE =SIMP(statut='o',typ=obstacle ),
2151 ORIG_OBST =SIMP(statut='f',typ='R',max='**'),
2152 NORM_OBST =SIMP(statut='o',typ='R',max='**'),
2153 ANGL_VRIL =SIMP(statut='f',typ='R' ),
2154 JEU =SIMP(statut='f',typ='R',defaut= 1. ),
2155 DIST_1 =SIMP(statut='f',typ='R' ),
2156 DIST_2 =SIMP(statut='f',typ='R' ),
2157 REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
2158 RIGI_NOR =SIMP(statut='f',typ='R' ),
2159 FNOR_CRIT =SIMP(statut='f',typ='R' ),
2160 FNOR_POST_FL =SIMP(statut='f',typ='R' ),
2161 RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
2163 ANTI_SISM =FACT(statut='f',min=01,max='**',
2164 regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
2165 UN_PARMI('NOEUD_2','GROUP_NO_2'),
2166 PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
2167 PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
2168 NOEUD_1 =SIMP(statut='f',typ=no),
2169 NOEUD_2 =SIMP(statut='f',typ=no),
2170 GROUP_NO_1 =SIMP(statut='f',typ=grno),
2171 GROUP_NO_2 =SIMP(statut='f',typ=grno),
2172 RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2173 RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2174 SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2175 C =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2176 PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
2177 DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ),
2179 RELA_EFFO_DEPL =FACT(statut='f',min=01,max='**',
2180 NOEUD =SIMP(statut='o',typ=no),
2181 SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
2182 NOM_CMP =SIMP(statut='f',typ='TXM' ),
2183 RELATION =SIMP(statut='o',typ=fonction ),
2185 RELA_TRANSIS =FACT(statut='f',min=01,max='**',
2186 NOEUD =SIMP(statut='o',typ=no),
2187 SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
2188 NOM_CMP =SIMP(statut='f',typ='TXM' ),
2189 RELATION =SIMP(statut='o',typ=fonction ),
2191 RELA_EFFO_VITE =FACT(statut='f',min=01,max='**',
2192 NOEUD =SIMP(statut='o',typ=no),
2193 SOUS_STRUC =SIMP(statut='f',typ='TXM' ),
2194 NOM_CMP =SIMP(statut='f',typ='TXM' ),
2195 RELATION =SIMP(statut='o',typ=fonction ),
2197 b_itmi =BLOC(condition = "METHODE=='ITMI'",
2198 regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
2199 BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ),
2200 NUME_VITE_FLUI =SIMP(statut='f',typ='I' ),
2201 ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2202 PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
2203 CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2204 NB_MODE =SIMP(statut='f',typ='I' ),
2205 NB_MODE_FLUI =SIMP(statut='f',typ='I' ),
2206 NB_MODE_DIAG =SIMP(statut='f',typ='I' ),
2207 TS_REG_ETAB =SIMP(statut='f',typ='R' ),
2209 INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2210 IMPRESSION =FACT(statut='f',min=01,max='**',
2211 regles=(EXCLUS('TOUT','NIVEAU'),),
2212 TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2213 NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
2214 INST_INIT =SIMP(statut='f',typ='R' ),
2215 INST_FIN =SIMP(statut='f',typ='R' ),
2217 TITRE =SIMP(statut='f',typ='TXM',max='**'),
2220 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
2222 RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE",
2223 statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
2224 PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
2225 statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
2226 INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données",
2227 statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
2228 FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),