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