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.
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.
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 # ======================================================================
21 DEBUT(CODE=_F( NOM = 'SDLL137A',NIV_PUB_WEB='INTERNET'),);
23 #**********************************
24 # CREATION DU MODELE EXPERIMENTAL
25 #**********************************
27 MAILEXP=LIRE_MAILLAGE(UNITE=22);
29 MODLEXP=AFFE_MODELE(MAILLAGE=MAILEXP,
31 PHENOMENE='MECANIQUE',
32 MODELISATION='DIS_TR',),);
34 CHCAREXP=AFFE_CARA_ELEM(MODELE=MODLEXP,
35 DISCRET=_F(GROUP_MA='POUTRE',
38 VALE=(1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,1.e+12,),
41 KELEXP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
46 MELEXP=CALC_MATR_ELEM(OPTION='MASS_MECA',
51 NUMEXP=NUME_DDL( MATR_RIGI=KELEXP,
54 KASSEXP=ASSE_MATRICE(MATR_ELEM=KELEXP,
57 MASSEXP=ASSE_MATRICE(MATR_ELEM=MELEXP,
60 # LECTURE DES MODES IDENTIFIES
62 MODMESU=LIRE_RESU(TYPE_RESU='MODE_MECA',
69 FORMAT_IDEAS=_F(NOM_CHAM='DEPL',
71 RECORD_6=(1,2,3,8,2,6,),
77 NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),),
82 MODEIDE=EXTR_MODE(FILTRE_MODE=_F(MODE=MODMESU,
83 NUME_MODE=(1,2,3,4,5,),
86 #********************************
87 # CREATION MODELE SUPPORT
88 #********************************
90 MAILSUP=LIRE_MAILLAGE(UNITE=20);
92 MODLSUP=AFFE_MODELE(MAILLAGE=MAILSUP,
93 AFFE=(_F(GROUP_MA=('POUTRE','VISUAL',),
94 PHENOMENE='MECANIQUE',
95 MODELISATION='POU_D_E',),),)
97 MATSUP=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
101 CHMATSUP=AFFE_MATERIAU(MAILLAGE=MAILSUP,
103 AFFE=(_F(GROUP_MA='POUTRE',
106 CHCARSUP=AFFE_CARA_ELEM(MODELE=MODLSUP,
107 POUTRE=(_F(GROUP_MA='POUTRE',
110 VALE=(9.E-3,38.E-3,),),),
111 ORIENTATION=(_F(GROUP_MA='POUTRE',
116 CONDLSUP=AFFE_CHAR_MECA(MODELE=MODLSUP,
117 DDL_IMPO=( _F(GROUP_NO=('FIXE',),
126 KELSUP=CALC_MATR_ELEM(OPTION='RIGI_MECA',
132 MELSUP=CALC_MATR_ELEM(OPTION='MASS_MECA',
138 NUMSUP=NUME_DDL(MATR_RIGI=KELSUP,);
140 KASSUP=ASSE_MATRICE(MATR_ELEM=KELSUP,
143 MASSUP=ASSE_MATRICE(MATR_ELEM=MELSUP,
146 MODESUP=MODE_ITER_SIMULT(MATR_A=KASSUP,
148 VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
149 CALC_FREQ=_F(OPTION='PLUS_PETITE',
151 SEUIL_FREQ=1.E-4,),);
153 MODSTSUP=MODE_STATIQUE(MATR_RIGI=KASSUP,
155 _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
158 BASEMO=DEFI_BASE_MODALE(RITZ=(
159 _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
160 _F(MODE_STAT=MODSTSUP,NMAX_MODE=8,),
164 #********************************
165 # CORRESPONDANCE MESURE - SUPPORT
166 #********************************
168 PROJ=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
170 MODELE_MESURE=_F(MODELE=MODLEXP,
173 RESOLUTION=_F(METHODE='SVD',
177 # CONDENSATION DE LA MESURE SUR DDL INTERFACES
179 SSEXP = MACR_ELEM_STAT(
180 DEFINITION=_F(MODELE=MODLSUP,
181 PROJ_MESU=PROJ,MODE_MESURE=MODEIDE,
182 CARA_ELEM =CHCARSUP,CHAM_MATER=CHMATSUP,
184 EXTERIEUR=_F(GROUP_NO = ('EXTERNE',),),
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,))
194 #**********************************
195 # CREATION DU MODELE COUPLE (MESURE + MODIFICATION)
196 #**********************************
198 MAILX=LIRE_MAILLAGE(UNITE=24);
200 MAILCPL=ASSE_MAILLAGE(
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',),
215 CHCARCPL=AFFE_CARA_ELEM(MODELE=MODLCPL,
216 POUTRE=(_F(GROUP_MA='POUTRE',
219 VALE=(9.E-3,38.E-3,),),),
220 ORIENTATION=(_F(GROUP_MA='POUTRE',
225 MATERX=DEFI_MATERIAU(ELAS=_F(E=2.1E11,
229 CHMATCPL=AFFE_MATERIAU( MAILLAGE=MAILCPL,
230 AFFE=(_F(GROUP_MA=('POUTRE',),
233 CONDLCPL=AFFE_CHAR_MECA(MODELE=MODLCPL,
234 DDL_IMPO=( _F(GROUP_NO=('EXTERNE',),
239 KELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='RIGI_MECA',
240 CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
244 MELCPL=CALC_MATR_ELEM(MODELE=MODLCPL,OPTION='MASS_MECA',
245 CARA_ELEM=CHCARCPL,CHAM_MATER=CHMATCPL,
249 NUMCPL=NUME_DDL(MATR_RIGI=KELCPL,)
251 KASCPL=ASSE_MATRICE(MATR_ELEM=KELCPL,NUME_DDL=NUMCPL)
253 MASCPL=ASSE_MATRICE(MATR_ELEM=MELCPL,NUME_DDL=NUMCPL)
255 # CALCUL MODAL SUR LE MODELE COUPLE
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',
261 SEUIL_FREQ=1.E-4,),);
263 # RETROPROJECTION SUR LE MODELE EXPERIMENTAL (INTERFACE -> DDL MESURE)
265 MODERETR=DEPL_INTERNE(DEPL_GLOBAL=MODECPL,SUPER_MAILLE='SUMAIL')
267 #**********************************
268 # INDICATEUR SUR CHOIX DE BASE DE PROJECTION
269 # COMPARAISON CHAMP INTERFACE <> CHAMP OBTENU PAR EXPANSION STATIQUE AUX INTERFACES
270 #**********************************
272 # CREATION MODELE FICTIF DE L INTERFACE
274 MAILINT=LIRE_MAILLAGE(UNITE=26);
276 MODLINT=AFFE_MODELE(MAILLAGE=MAILINT,
277 AFFE=_F(GROUP_MA='VISUAL',
278 PHENOMENE='MECANIQUE',
279 MODELISATION='DIS_TR',),);
281 CHCARINT=AFFE_CARA_ELEM(MODELE=MODLINT,
282 DISCRET=_F(GROUP_MA='VISUAL',
285 VALE=(1e+12,1e+12,1e+12,1e+12,1e+12,1e+12,),
288 KELINT=CALC_MATR_ELEM(OPTION='RIGI_MECA',
293 NUMINT=NUME_DDL( MATR_RIGI=KELINT,);
295 # EXPANSION STATIQUE DU CHAMP DE DEPL AUX INTERFACES
297 MODSTINT=MODE_STATIQUE(MATR_RIGI=KASSUP,
298 FORCE_NODALE=( _F(GROUP_NO='CAPTEUR',AVEC_CMP=('DY','DZ',),),
301 BASEINT=DEFI_BASE_MODALE(RITZ=(
302 _F(MODE_MECA=MODESUP,NMAX_MODE=0,),
303 _F(MODE_STAT=MODSTINT,NMAX_MODE=4,),
307 PROJMS=PROJ_MESU_MODAL(MODELE_CALCUL=_F(MODELE=MODLSUP,
309 MODELE_MESURE=_F(MODELE=MODLEXP,
312 RESOLUTION=_F(METHODE='SVD',
316 DEPLPR=REST_BASE_PHYS(RESU_GENE=PROJMS,
320 DEPLINT=PROJ_CHAMP(METHODE='ELEM',
327 VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
328 GROUP_MA_2='VISUAL',),
331 # CHAMP DE DEPL AUX INTERFACES SUR LE MODELE COUPLE
333 DEPLXINT=PROJ_CHAMP(METHODE='ELEM',
340 VIS_A_VIS=_F(GROUP_MA_1='VISUAL',
341 GROUP_MA_2='VISUAL',),
344 # INDICATEUR DE PROXIMITE DES MODES
345 # LA BASE DE PROJECTION EST CORRECT SI DEPLINT = DEPLXINT
347 # LES MODES SONT PROCHES SI LES TERMES DIAG DU MAC PROCHE DE 1
349 MACINT=MAC_MODES(BASE_1=DEPLINT,
354 TEST_TABLE(TABLE=MACINT, REFERENCE='ANALYTIQUE',
361 #**********************************
362 # COMPARAISON AVEC CALCUL DIRECT
363 #**********************************
365 MODLDIR=AFFE_MODELE(MAILLAGE=MAILSUP,
366 AFFE=(_F(GROUP_MA=('SIMPLE','VISUAL',),
367 PHENOMENE='MECANIQUE',
368 MODELISATION='POU_D_E',),),)
370 MATDBL=DEFI_MATERIAU(ELAS=_F(E=4.2E11,
374 CHMATDIR=AFFE_MATERIAU(MAILLAGE=MAILSUP,
376 AFFE=(_F(GROUP_MA='SIMPLE',
378 _F(GROUP_MA='VISUAL',
381 CHCARDIR=AFFE_CARA_ELEM(MODELE=MODLDIR,
382 POUTRE=(_F(GROUP_MA='POUTRE',
385 VALE=(9.E-3,38.E-3,),),),
386 ORIENTATION=(_F(GROUP_MA='POUTRE',
391 CONDLDIR=AFFE_CHAR_MECA(MODELE=MODLDIR,
392 DDL_IMPO=( _F(GROUP_NO=('FIXE',),
401 KELDIR=CALC_MATR_ELEM(OPTION='RIGI_MECA',
407 MELDIR=CALC_MATR_ELEM(OPTION='MASS_MECA',
413 NUMDIR=NUME_DDL(MATR_RIGI=KELDIR,);
415 KASDIR=ASSE_MATRICE(MATR_ELEM=KELDIR,
418 MASDIR=ASSE_MATRICE(MATR_ELEM=MELDIR,
421 MODEDIR=MODE_ITER_SIMULT(MATR_A=KASDIR,
423 VERI_MODE=_F(SEUIL=1.E-05,STOP_ERREUR='OUI',),
424 CALC_FREQ=_F(OPTION='PLUS_PETITE',
426 SEUIL_FREQ=1.E-4,),);
428 #tmodes = aster.getvectjev("MODEDIR .FREQ ")
429 #tmodes[0] = 7.7807E+0
430 #tmodes[1] = 3.2852E+1
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',),