Salome HOME
CCAR: rabattre la version V1_15a4 dans la branche principale
[tools/eficas.git] / Traducteur / toto.comm
1 # MODIF  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
2 # TITRE MODIFICATION STRUCTURALE D UNE POUTRE
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9 # (AT YOUR OPTION) ANY LATER VERSION.                                                    
10 #                                                                       
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15 #                                                                       
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19 # ======================================================================
20
21 DEBUT(CODE=_F(  NOM = 'SDLL137A',NIV_PUB_WEB='INTERNET'),);
22
23 #**********************************
24 # CREATION DU MODELE EXPERIMENTAL
25 #**********************************
26
27 MAILEXP=LIRE_MAILLAGE(UNITE=22);
28
29 MODLEXP=AFFE_MODELE(MAILLAGE=MAILEXP,
30                    AFFE=_F(TOUT='OUI',
31                            PHENOMENE='MECANIQUE',
32                            MODELISATION='DIS_TR',),);
33
34 CHCAREXP=AFFE_CARA_ELEM(MODELE=MODLEXP,
35                      DISCRET=_F(GROUP_MA='POUTRE',
36                                  REPERE='GLOBAL',
37                                  CARA='K_TR_D_L',
38                                  VALE=(1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,),
39                                 ),);
40
41 KELEXP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
42                      MODELE=MODLEXP,
43                      CARA_ELEM=CHCAREXP,
44                      );
45
46 MELEXP=CALC_MATR_ELEM(OPTION='MASS_MECA',
47                      MODELE=MODLEXP,
48                      CARA_ELEM=CHCAREXP,
49                      );
50
51 NUMEXP=NUME_DDL( MATR_RIGI=KELEXP,
52                 );
53
54 KASSEXP=ASSE_MATRICE(MATR_ELEM=KELEXP,
55                   NUME_DDL=NUMEXP,);
56
57 MASSEXP=ASSE_MATRICE(MATR_ELEM=MELEXP,
58                   NUME_DDL=NUMEXP,);
59
60 # LECTURE DES MODES IDENTIFIES
61
62 MODMESU=LIRE_RESU(TYPE_RESU='MODE_MECA',
63                  FORMAT='IDEAS',
64                  MODELE=MODLEXP,
65                  UNITE=21,
66                  NOM_CHAM='DEPL',
67                  MATR_A =KASSEXP,
68                  MATR_B =MASSEXP,
69                  FORMAT_IDEAS=_F(NOM_CHAM='DEPL',
70                                  NUME_DATASET=55,
71                                  RECORD_6=(1,2,3,8,2,6,),
72                                  POSI_ORDRE=(7,4,),
73                                  POSI_NUME_MODE=(7,4),
74                                  POSI_FREQ=(8,1,),
75                                  POSI_MASS_GENE=(8,2),
76                                  POSI_AMOR_GENE=(8,3),
77                                  NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),),
78                  TOUT_ORDRE='OUI',);
79
80 # TRI EVENTUEL
81
82 MODEIDE=EXTR_MODE(FILTRE_MODE=_F(MODE=MODMESU,
83                                   NUME_MODE=(1,2,3,4,5,),
84                                   ),);
85
86 #********************************
87 # CREATION MODELE SUPPORT
88 #********************************
89
90 MAILSUP=LIRE_MAILLAGE(UNITE=20);
91
92 MODLSUP=AFFE_MODELE(MAILLAGE=MAILSUP,
93                    AFFE=(_F(GROUP_MA=('POUTRE','VISUAL',),
94                             PHENOMENE='MECANIQUE',
95                             MODELISATION='POU_D_E',),),)
96
97 MATSUP=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
98                              NU=0.3,
99                              RHO=7800.,),);
100
101 CHMATSUP=AFFE_MATERIAU(MAILLAGE=MAILSUP,
102                        MODELE=MODLSUP,
103                        AFFE=(_F(GROUP_MA='POUTRE',
104                                 MATER=MATSUP,),),);
105
106 CHCARSUP=AFFE_CARA_ELEM(MODELE=MODLSUP,
107                         POUTRE=(_F(GROUP_MA='POUTRE',
108                                    SECTION='RECTANGLE',
109                                    CARA=('HY','HZ',),
110                                    VALE=(9.E-3,38.E-3,),),),
111                         ORIENTATION=(_F(GROUP_MA='POUTRE',
112                                         CARA='VECT_Y',
113                                         VALE=(0.,0.,1.),),),
114                        )
115
116 CONDLSUP=AFFE_CHAR_MECA(MODELE=MODLSUP,
117                       DDL_IMPO=( _F(GROUP_NO=('FIXE',),
118                                    DX=0.0,
119                                    DY=0.0,
120                                    DZ=0.0,
121                                    DRX=0.0,
122                                    DRY=0.0,
123                                    DRZ=0.0,),
124                                ),);
125
126 KELSUP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
127                         MODELE=MODLSUP,
128                         CHAM_MATER=CHMATSUP,
129                         CARA_ELEM=CHCARSUP,
130                         CHARGE=CONDLSUP,);
131
132 MELSUP=CALC_MATR_ELEM(OPTION='MASS_MECA',
133                         MODELE=MODLSUP,
134                         CHAM_MATER=CHMATSUP,
135                         CARA_ELEM=CHCARSUP,
136                         CHARGE=CONDLSUP,);
137
138 NUMSUP=NUME_DDL(MATR_RIGI=KELSUP,);
139
140 KASSUP=ASSE_MATRICE(MATR_ELEM=KELSUP,
141                       NUME_DDL=NUMSUP,);
142
143 MASSUP=ASSE_MATRICE(MATR_ELEM=MELSUP,
144                       NUME_DDL=NUMSUP,);
145
146 MODESUP=MODE_ITER_SIMULT(MATR_A=KASSUP,
147                        MATR_B=MASSUP,
148                        VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
149                        CALC_FREQ=_F(OPTION='PLUS_PETITE',
150                                     NMAX_FREQ=20,
151                                     SEUIL_FREQ=1.E-4,),);
152
153 MODSTSUP=MODE_STATIQUE(MATR_RIGI=KASSUP,
154                      FORCE_NODALE=( 
155                       _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
156                       ),);
157
158 BASEMO=DEFI_BASE_MODALE(RITZ=(
159                              _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
160                              _F(MODE_STAT=MODSTSUP,NMAX_MODE=8,),
161                              ),
162                        NUME_REF=NUMSUP,);
163
164 #********************************
165 # CORRESPONDANCE MESURE - SUPPORT
166 #********************************
167
168 PROJ=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
169                                       BASE=BASEMO,),
170                      MODELE_MESURE=_F(MODELE=MODLEXP,
171                                       MESURE=MODEIDE,
172                                       NOM_CHAM='DEPL',),
173                      RESOLUTION=_F(METHODE='SVD',
174                                    EPS=1.E-5),
175                      );
176
177 # CONDENSATION DE LA MESURE SUR DDL INTERFACES
178
179 SSEXP = MACR_ELEM_STAT(
180                DEFINITION=_F(MODELE=MODLSUP,
181                              PROJ_MESU=PROJ,MODE_MESURE=MODEIDE,
182                              CARA_ELEM =CHCARSUP,CHAM_MATER=CHMATSUP,
183                             ),
184                EXTERIEUR=_F(GROUP_NO = ('EXTERNE',),),
185                RIGI_MECA=_F(),
186                MASS_MECA=_F(),
187            )
188
189 MAILCOND=DEFI_MAILLAGE(
190          DEFI_SUPER_MAILLE=_F( MACR_ELEM_STAT = SSEXP,SUPER_MAILLE='SUMAIL',),
191          DEFI_NOEUD=_F( TOUT = 'OUI', INDEX = (1,0,1,8,))
192         )
193
194 #**********************************
195 # CREATION DU MODELE COUPLE (MESURE + MODIFICATION)
196 #**********************************
197
198 MAILX=LIRE_MAILLAGE(UNITE=24);
199
200 MAILCPL=ASSE_MAILLAGE(
201             MAILLAGE_1=MAILCOND,
202             MAILLAGE_2=MAILX,
203             OPERATION='SOUS_STR'
204                  )
205
206 MODLCPL=AFFE_MODELE(
207           MAILLAGE=MAILCPL,
208           AFFE=(_F(GROUP_MA=('POUTRE',),
209                             PHENOMENE='MECANIQUE',
210                             MODELISATION='POU_D_E',),),
211           AFFE_SOUS_STRUC=_F( SUPER_MAILLE = 'SUMAIL',
212                             PHENOMENE='MECANIQUE',),
213               )
214
215 CHCARCPL=AFFE_CARA_ELEM(MODELE=MODLCPL,
216                         POUTRE=(_F(GROUP_MA='POUTRE',
217                                    SECTION='RECTANGLE',
218                                    CARA=('HY','HZ',),
219                                    VALE=(9.E-3,38.E-3,),),),
220                         ORIENTATION=(_F(GROUP_MA='POUTRE',
221                                         CARA='VECT_Y',
222                                         VALE=(0.,0.,1.),),),
223                      )
224
225 MATERX=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
226                              NU=0.3,
227                              RHO=7800.,),);
228
229 CHMATCPL=AFFE_MATERIAU(  MAILLAGE=MAILCPL,
230                     AFFE=(_F(GROUP_MA=('POUTRE',),
231                              MATER=MATERX,),),);
232
233 CONDLCPL=AFFE_CHAR_MECA(MODELE=MODLCPL,
234                       DDL_IMPO=( _F(GROUP_NO=('EXTERNE',),
235                                    DX=0.0,
236                                    DRX=0.0,
237                                 ),),);
238
239 KELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='RIGI_MECA',
240                      CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
241                      CHARGE=CONDLCPL,
242                      )
243
244 MELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='MASS_MECA',
245                      CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
246                      CHARGE=CONDLCPL,
247                     )
248
249 NUMCPL=NUME_DDL(MATR_RIGI=KELCPL,)
250
251 KASCPL=ASSE_MATRICE(MATR_ELEM=KELCPL,NUME_DDL=NUMCPL)
252
253 MASCPL=ASSE_MATRICE(MATR_ELEM=MELCPL,NUME_DDL=NUMCPL)
254
255 # CALCUL MODAL SUR LE MODELE COUPLE
256
257 MODECPL=MODE_ITER_SIMULT(MATR_A=KASCPL,MATR_B=MASCPL,
258                        VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
259                        CALC_FREQ=_F(OPTION='PLUS_PETITE',
260                                     NMAX_FREQ=2,
261                                     SEUIL_FREQ=1.E-4,),);
262
263 # RETROPROJECTION SUR LE MODELE EXPERIMENTAL (INTERFACE -> DDL MESURE)
264
265 MODERETR=DEPL_INTERNE(DEPL_GLOBAL=MODECPL,SUPER_MAILLE='SUMAIL')
266
267 #**********************************
268 # INDICATEUR SUR CHOIX DE BASE DE PROJECTION
269 # COMPARAISON CHAMP INTERFACE <> CHAMP OBTENU PAR EXPANSION STATIQUE AUX INTERFACES
270 #**********************************
271
272 # CREATION MODELE FICTIF DE L INTERFACE
273
274 MAILINT=LIRE_MAILLAGE(UNITE=26);
275
276 MODLINT=AFFE_MODELE(MAILLAGE=MAILINT,
277                    AFFE=_F(GROUP_MA='VISUAL',
278                            PHENOMENE='MECANIQUE',
279                            MODELISATION='DIS_TR',),);
280
281 CHCARINT=AFFE_CARA_ELEM(MODELE=MODLINT,
282                      DISCRET=_F(GROUP_MA='VISUAL',
283                                  REPERE='GLOBAL',
284                                  CARA='K_TR_D_L',
285                                  VALE=(1e+12,1e+12,1e+12,1e+12,1e+12,1e+12,),
286                                 ),);
287
288 KELINT=CALC_MATR_ELEM(OPTION='RIGI_MECA',
289                      MODELE=MODLINT,
290                      CARA_ELEM=CHCARINT,
291                      );
292
293 NUMINT=NUME_DDL( MATR_RIGI=KELINT,);
294
295 # EXPANSION STATIQUE DU CHAMP DE DEPL AUX INTERFACES
296
297 MODSTINT=MODE_STATIQUE(MATR_RIGI=KASSUP,
298                       FORCE_NODALE=( _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
299                       ),);
300
301 BASEINT=DEFI_BASE_MODALE(RITZ=(
302                              _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
303                              _F(MODE_STAT=MODSTINT,NMAX_MODE=4,),
304                              ),
305                        NUME_REF=NUMSUP,);
306
307 PROJMS=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
308                                       BASE=BASEINT,),
309                      MODELE_MESURE=_F(MODELE=MODLEXP,
310                                       MESURE=MODERETR,
311                                       NOM_CHAM='DEPL',),
312                      RESOLUTION=_F(METHODE='SVD',
313                                    EPS=1.E-5),
314                      );
315                      
316 DEPLPR=REST_BASE_PHYS(RESU_GENE=PROJMS,
317                    TOUT_ORDRE='OUI',
318                    NOM_CHAM   ='DEPL');
319
320 DEPLINT=PROJ_CHAMP(METHODE='ELEM',
321                RESULTAT=DEPLPR,
322                MODELE_1=MODLSUP,
323                MODELE_2=MODLINT,
324                NOM_CHAM='DEPL',
325                TOUT_ORDRE='OUI',
326                NUME_DDL=NUMINT,
327                VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
328                             GROUP_MA_2='VISUAL',),
329               );
330
331 # CHAMP DE DEPL AUX INTERFACES SUR LE MODELE COUPLE
332
333 DEPLXINT=PROJ_CHAMP(METHODE='ELEM',
334                RESULTAT=MODECPL,
335                MODELE_1=MODLCPL,
336                MODELE_2=MODLINT,
337                NOM_CHAM='DEPL',
338                TOUT_ORDRE='OUI',
339                NUME_DDL=NUMINT,
340                VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
341                             GROUP_MA_2='VISUAL',),
342               );
343
344 # INDICATEUR DE PROXIMITE DES MODES
345 # LA BASE DE PROJECTION EST CORRECT SI DEPLINT = DEPLXINT
346
347 # LES MODES SONT PROCHES SI LES TERMES DIAG DU MAC PROCHE DE 1
348
349 MACINT=MAC_MODES(BASE_1=DEPLINT,
350                BASE_2=DEPLXINT,
351                INFO  =2,
352               );
353
354 TEST_TABLE(TABLE=MACINT, REFERENCE='ANALYTIQUE',
355            NOM_PARA = 'MAC',
356            TYPE_TEST='SOMM',
357            CRITERE='ABSOLU',
358            VALE = 2,
359            PRECISION = 0.02)
360
361 #**********************************
362 # COMPARAISON AVEC CALCUL DIRECT
363 #**********************************
364
365 MODLDIR=AFFE_MODELE(MAILLAGE=MAILSUP,
366                    AFFE=(_F(GROUP_MA=('SIMPLE','VISUAL',),
367                             PHENOMENE='MECANIQUE',
368                             MODELISATION='POU_D_E',),),)
369
370 MATDBL=DEFI_MATERIAU(ELAS=_F(E=4.2E11,
371                              NU=0.3,
372                              RHO=15600.,),);
373
374 CHMATDIR=AFFE_MATERIAU(MAILLAGE=MAILSUP,
375                        MODELE=MODLDIR,
376                        AFFE=(_F(GROUP_MA='SIMPLE',
377                                 MATER=MATSUP,),
378                              _F(GROUP_MA='VISUAL',
379                                 MATER=MATDBL,),),);
380
381 CHCARDIR=AFFE_CARA_ELEM(MODELE=MODLDIR,
382                         POUTRE=(_F(GROUP_MA='POUTRE',
383                                    SECTION='RECTANGLE',
384                                    CARA=('HY','HZ',),
385                                    VALE=(9.E-3,38.E-3,),),),
386                         ORIENTATION=(_F(GROUP_MA='POUTRE',
387                                         CARA='VECT_Y',
388                                         VALE=(0.,0.,1.),),),
389                        )
390
391 CONDLDIR=AFFE_CHAR_MECA(MODELE=MODLDIR,
392                       DDL_IMPO=( _F(GROUP_NO=('FIXE',),
393                                    DX=0.0,
394                                    DY=0.0,
395                                    DZ=0.0,
396                                    DRX=0.0,
397                                    DRY=0.0,
398                                    DRZ=0.0,),
399                                ),);
400
401 KELDIR=CALC_MATR_ELEM(OPTION='RIGI_MECA',
402                         MODELE=MODLDIR,
403                         CHAM_MATER=CHMATDIR,
404                         CARA_ELEM=CHCARDIR,
405                         CHARGE=CONDLDIR,);
406
407 MELDIR=CALC_MATR_ELEM(OPTION='MASS_MECA',
408                         MODELE=MODLDIR,
409                         CHAM_MATER=CHMATDIR,
410                         CARA_ELEM=CHCARDIR,
411                         CHARGE=CONDLDIR,);
412
413 NUMDIR=NUME_DDL(MATR_RIGI=KELDIR,);
414
415 KASDIR=ASSE_MATRICE(MATR_ELEM=KELDIR,
416                       NUME_DDL=NUMDIR,);
417
418 MASDIR=ASSE_MATRICE(MATR_ELEM=MELDIR,
419                       NUME_DDL=NUMDIR,);
420
421 MODEDIR=MODE_ITER_SIMULT(MATR_A=KASDIR,
422                        MATR_B=MASDIR,
423                        VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
424                        CALC_FREQ=_F(OPTION='PLUS_PETITE',
425                                     NMAX_FREQ=2,
426                                     SEUIL_FREQ=1.E-4,),);
427
428 #tmodes = aster.getvectjev("MODEDIR            .FREQ        ")
429 #tmodes[0] = 7.7807E+0
430 #tmodes[1] = 3.2852E+1
431
432 TEST_RESU(RESU=(
433                 _F(RESULTAT=MODECPL, NUME_ORDRE=1, PARA='FREQ',
434                    VALE=7.7807E+0, CRITERE='RELATIF', PRECISION=1.E-2,
435                    REFERENCE='AUTRE_ASTER',),
436                 _F(RESULTAT=MODECPL, NUME_ORDRE=2, PARA='FREQ',
437                    VALE=3.2852E+1, CRITERE='RELATIF', PRECISION=1.E-2,
438                    REFERENCE='AUTRE_ASTER',),
439                 ),);
440
441
442 FIN();
443