サンプルのSSNL502Cは、初期不整を外力で与えていました。今回はこの初期不整を線形座屈解析結果から生成してみました。
①線形解析
②線形座屈解析
③指定した座屈モードから初期不整データ(変位)を生成
④節点座標に③の初期不整データを加える
⑤弧長法による座屈解析
DEBUT(identifier='0:1',
CODE=_F(NIV_PUB_WEB='INTERNET'),
DEBUG=_F(SDVERI='NON'),
LANG='EN')
MAIL = LIRE_MAILLAGE(identifier='1:1',
FORMAT='ASTER',
UNITE=20)
MAIL = DEFI_GROUP(identifier='2:1',
reuse=MAIL,
CREA_GROUP_NO=_F(GROUP_MA='TOUT_ELT'),
MAILLAGE=MAIL)
線形座屈解析を行うので、POU_D_E要素でモデル化します。
MO = AFFE_MODELE(identifier='3:1',
AFFE=_F(GROUP_MA='TOUT_ELT',
MODELISATION='POU_D_E',
PHENOMENE='MECANIQUE'),
MAILLAGE=MAIL)
CAREL = AFFE_CARA_ELEM(identifier='4:1',
INFO=2,
MODELE=MO,
ORIENTATION=_F(CARA='ANGL_VRIL',
GROUP_MA='TOUT_ELT',
VALE=(0.0, )),
POUTRE=_F(CARA=('A', 'IY', 'IZ', 'AY', 'AZ', 'JX'),
GROUP_MA='TOUT_ELT',
SECTION='GENERALE',
VALE=(0.0003375, 5.69531e-10, 1.58203e-07, 1.0, 1.0, 2.19201e-09)))
MAT = DEFI_MATERIAU(identifier='5:1',
ELAS=_F(ALPHA=0.0,
E=200000000000.0,
NU=0.3))
CHMAT = AFFE_MATERIAU(identifier='6:1',
AFFE=_F(MATER=MAT,
TOUT='OUI'),
MAILLAGE=MAIL)
F_CHARGE = DEFI_FONCTION(identifier='7:1',
NOM_PARA='INST',
PROL_DROITE='CONSTANT',
PROL_GAUCHE='EXCLU',
VALE=(0.0, 0.0, 2.0, 2.0))
LIS_INST = DEFI_LIST_REEL(identifier='8:1',
DEBUT=0.0,
INTERVALLE=(_F(JUSQU_A=0.94,
NOMBRE=4),
_F(JUSQU_A=0.95,
NOMBRE=1),
_F(JUSQU_A=1.009,
NOMBRE=10),
_F(JUSQU_A=1.01,
NOMBRE=1),
_F(JUSQU_A=2.0,
NOMBRE=198)))
DEFLIST = DEFI_LIST_INST(identifier='9:1',
DEFI_LIST=_F(LIST_INST=LIS_INST),
ECHEC=_F(ACTION='DECOUPE',
SUBD_METHODE='MANUEL',
SUBD_NIVEAU=4,
SUBD_PAS=4,
SUBD_PAS_MINI=1e-08))
CON_LIM = AFFE_CHAR_MECA(identifier='10:1',
DDL_IMPO=(_F(DRX=0.0,
DRY=0.0,
DRZ=0.0,
DX=0.0,
DZ=0.0,
GROUP_NO='A'),
_F(DY=0.0,
GROUP_NO='TOUT_ELT')),
MODELE=MO)
CHARGE = AFFE_CHAR_MECA(identifier='11:1',
FORCE_NODALE=_F(FZ=-1124.21,
GROUP_NO='B'),
MODELE=MO)
reslin = MECA_STATIQUE(identifier='12:1',
CARA_ELEM=CAREL,
CHAM_MATER=CHMAT,
EXCIT=(_F(CHARGE=CON_LIM),
_F(CHARGE=CHARGE)),
MODELE=MO,
OPTION='SIEF_ELGA',
SOLVEUR=_F(METHODE='MUMPS',
TYPE_RESOL='AUTO'))
reslin = CALC_CHAMP(identifier='13:1',
reuse=reslin,
CONTRAINTE=('SIEF_ELNO', ),
FORCE=('FORC_NODA', ),
RESULTAT=reslin)
sigma = CREA_CHAMP(identifier='14:1',
NOM_CHAM='SIEF_ELGA',
NUME_ORDRE=1,
OPERATION='EXTR',
RESULTAT=reslin,
TYPE_CHAM='ELGA_SIEF_R')
RIGEL = CALC_MATR_ELEM(identifier='15:1',
CARA_ELEM=CAREL,
CHAM_MATER=CHMAT,
CHARGE=(CON_LIM, ),
MODELE=MO,
OPTION='RIGI_MECA')
NU = NUME_DDL(identifier='16:1',
MATR_RIGI=(RIGEL, ))
RIGAS = ASSE_MATRICE(identifier='17:1',
MATR_ELEM=RIGEL,
NUME_DDL=NU)
RIGELG_1 = CALC_MATR_ELEM(identifier='18:1',
CARA_ELEM=CAREL,
MODELE=MO,
OPTION='RIGI_GEOM',
SIEF_ELGA=sigma)
RIGASG_1 = ASSE_MATRICE(identifier='19:1',
MATR_ELEM=RIGELG_1,
NUME_DDL=NU)
modes = CALC_MODES(identifier='20:1',
MATR_RIGI=RIGAS,
MATR_RIGI_GEOM=RIGASG_1,
OPTION='PLUS_PETITE',
SOLVEUR_MODAL=_F(COEF_DIM_ESPACE=3),
TYPE_RESU='MODE_FLAMB',
VERI_MODE=_F(STOP_ERREUR='NON'))
線形座屈解析結果から第1モードを取り出して、最大変位が0.005㎜となるように大きさを調整して、元のモデルの節点座標を更新します。
まず、座屈モードを正規化します。
modes = NORM_MODE(identifier='21:1',
reuse=modes,
MODE=modes,
NORME='TRAN')
第1モードの変位をBuck_lowに格納します。
Buck_low = CREA_CHAMP(identifier='22:1',
NOM_CHAM='DEPL',
NUME_MODE=1,
OPERATION='EXTR',
RESULTAT=modes,
TYPE_CHAM='NOEU_DEPL_R')
Buck_lowを0.00005倍(モデルの単位系がメートルなので0.05mm⇒0.00005m)してDefo1に格納します。
Defo1 = CREA_CHAMP(identifier='23:1',
COMB=_F(CHAM_GD=Buck_low,
COEF_R=5e-05),
OPERATION='COMB',
TYPE_CHAM='NOEU_DEPL_R')
元のmeshデータMAILの節点をDefo1分移動させます。MAILは更新されます。
MAIL = MODI_MAILLAGE(identifier='24:1',
reuse=MAIL,
DEFORME=_F(DEPL=Defo1,
OPTION='TRAN'),
MAILLAGE=MAIL)
今度はPOU_D_T_GD要素でモデル化します。
MON = AFFE_MODELE(identifier='25:1',
AFFE=_F(GROUP_MA=('TOUT_ELT', ),
MODELISATION='POU_D_T_GD',
PHENOMENE='MECANIQUE'),
MAILLAGE=MAIL)
CARELN = AFFE_CARA_ELEM(identifier='26:1',
INFO=2,
MODELE=MON,
ORIENTATION=_F(CARA='ANGL_VRIL',
GROUP_MA=('TOUT_ELT', ),
VALE=0.0),
POUTRE=_F(CARA=('A', 'IY', 'IZ', 'AY', 'AZ', 'JX'),
GROUP_MA=('TOUT_ELT', ),
SECTION='GENERALE',
VALE=(0.0003375, 5.69531e-10, 1.58203e-07, 1.0, 1.0, 2.19201e-09)))
CHMATN = AFFE_MATERIAU(identifier='27:1',
AFFE=_F(MATER=(MAT, ),
TOUT='OUI'),
MODELE=MON)
CON_LIMN = AFFE_CHAR_MECA(identifier='28:1',
DDL_IMPO=(_F(DRX=0.0,
DRY=0.0,
DRZ=0.0,
DX=0.0,
DZ=0.0,
GROUP_NO=('A', )),
_F(DY=0.0,
GROUP_NO=('TOUT_ELT', ))),
MODELE=MON)
CHARGEN = AFFE_CHAR_MECA(identifier='29:1',
FORCE_NODALE=_F(FZ=-1124.21,
GROUP_NO=('B', )),
MODELE=MON)
RESULT = STAT_NON_LINE(identifier='30:1',
CARA_ELEM=CARELN,
CHAM_MATER=CHMATN,
COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
RELATION='ELAS_POUTRE_GR'),
CONVERGENCE=_F(ITER_GLOB_MAXI=30,
RESI_GLOB_RELA=1e-06),
EXCIT=(_F(CHARGE=CON_LIMN),
_F(CHARGE=CHARGEN,
FONC_MULT=F_CHARGE)),
INCREMENT=_F(LIST_INST=LIS_INST,
NUME_INST_FIN=5),
MODELE=MON,
NEWTON=_F(MATRICE='TANGENTE',
MATR_RIGI_SYME='OUI',
REAC_ITER=1))
次の計算範囲では、座屈判定を行います。
CRIT_STAB=_F(TYPE=’FLAMBEMENT’)
を追加します。ここで、POU_D_T_GDを使っているので、
NEWTON=_(・・・・
MATR_RIGI_SYME=’OUI’, ・・・・)
も追加しておきます。
RESULT = STAT_NON_LINE(identifier='31:1',
reuse=RESULT,
CARA_ELEM=CARELN,
CHAM_MATER=CHMATN,
COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
RELATION='ELAS_POUTRE_GR'),
CONVERGENCE=_F(ITER_GLOB_MAXI=40,
RESI_GLOB_RELA=1e-06),
CRIT_STAB=_F(TYPE='FLAMBEMENT'),
ETAT_INIT=_F(EVOL_NOLI=RESULT),
EXCIT=(_F(CHARGE=CON_LIMN),
_F(CHARGE=CHARGEN,
TYPE_CHARGE='FIXE_PILO')),
INCREMENT=_F(LIST_INST=DEFLIST),
METHODE='NEWTON',
MODELE=MON,
NEWTON=_F(MATRICE='TANGENTE',
MATR_RIGI_SYME='OUI',
REAC_ITER=1),
PILOTAGE=_F(COEF_MULT=-1.0,
ETA_PILO_MAX=1.015,
GROUP_NO=('TOUT_ELT', ),
NOM_CMP=('DX', 'DZ'),
SELECTION='ANGL_INCR_DEPL',
TYPE='LONG_ARC'))
RESULT = STAT_NON_LINE(identifier='32:1',
reuse=RESULT,
CARA_ELEM=CARELN,
CHAM_MATER=CHMATN,
COMPORTEMENT=_F(DEFORMATION='GROT_GDEP',
RELATION='ELAS_POUTRE_GR'),
CONVERGENCE=_F(ITER_GLOB_MAXI=40,
RESI_GLOB_RELA=1e-06),
CRIT_STAB=_F(TYPE='FLAMBEMENT'),
ETAT_INIT=_F(EVOL_NOLI=RESULT),
EXCIT=(_F(CHARGE=CON_LIMN),
_F(CHARGE=CHARGEN,
TYPE_CHARGE='FIXE_PILO')),
INCREMENT=_F(LIST_INST=DEFLIST),
MODELE=MON,
NEWTON=_F(MATRICE='TANGENTE',
MATR_RIGI_SYME='OUI',
REAC_ITER=1),
PILOTAGE=_F(COEF_MULT=-1.0,
ETA_PILO_MAX=9.114,
GROUP_NO=('TOUT_ELT', ),
NOM_CMP=('DX', 'DZ'),
SELECTION='ANGL_INCR_DEPL',
TYPE='LONG_ARC'))
RESULT = CALC_CHAMP(identifier='33:1',
reuse=RESULT,
CONTRAINTE=('SIEF_ELNO', ),
FORCE=('FORC_NODA', ),
RESULTAT=RESULT,
TOUT_ORDRE='OUI')
RESULT2 = CALC_CHAMP(identifier='34:1',
EXCIT=(_F(CHARGE=CON_LIM),
_F(CHARGE=CHARGE,
TYPE_CHARGE='FIXE_PILO')),
FORCE=('REAC_NODA', ),
RESULTAT=RESULT,
TOUT_ORDRE='OUI')
table = POST_RELEVE_T(identifier='35:1',
ACTION=_F(GROUP_NO=('B', ),
INTITULE='LOAD',
NOM_CHAM='FORC_NODA',
OPERATION=('EXTRACTION', ),
RESULTANTE=('DX', 'DY', 'DZ'),
RESULTAT=RESULT))
IMPR_TABLE(identifier='36:1',
FORMAT='TABLEAU',
TABLE=table,
UNITE=8)
IMPR_RESU(identifier='37:1',
RESU=(_F(RESULTAT=RESULT,
TOUT='OUI'),
_F(RESULTAT=modes,
TOUT='OUI')),
UNITE=2)
ETA = RECU_FONCTION(identifier='38:1',
NOM_PARA_RESU='ETA_PILOTAGE',
RESULTAT=RESULT,
TOUT_ORDRE='OUI')
T_ETA = CREA_TABLE(identifier='39:1',
FONCTION=_F(FONCTION=ETA))
DEPZ = RECU_FONCTION(identifier='40:1',
GROUP_NO=('B', ),
NOM_CHAM='DEPL',
NOM_CMP='DZ',
RESULTAT=RESULT,
TOUT_ORDRE='OUI')
T_DEPZ = CREA_TABLE(identifier='41:1',
FONCTION=_F(FONCTION=DEPZ))
DEPX = RECU_FONCTION(identifier='42:1',
GROUP_NO=('B', ),
NOM_CHAM='DEPL',
NOM_CMP='DX',
RESULTAT=RESULT,
TOUT_ORDRE='OUI')
T_DEPX = CREA_TABLE(identifier='43:1',
FONCTION=_F(FONCTION=DEPX))
TAB_COMB = CALC_TABLE(identifier='44:1',
ACTION=(_F(NOM_PARA=('INST', ),
OPERATION='COMB',
TABLE=T_DEPZ),
_F(NOM_PARA=('INST', ),
OPERATION='COMB',
TABLE=T_DEPX)),
TABLE=T_ETA)
IMPR_TABLE(identifier='45:1',
TABLE=TAB_COMB,
UNITE=3)
DX_ETA = RECU_FONCTION(identifier='46:1',
FILTRE=_F(CRIT_COMP='NE',
NOM_PARA='ETA_PILO',
VALE=0.0),
INTERPOL=('LIN', ),
PARA_X='ETA_PILO',
PARA_Y='DX',
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',
TABLE=TAB_COMB)
DZ_ETA = RECU_FONCTION(identifier='47:1',
FILTRE=_F(CRIT_COMP='NE',
NOM_PARA='ETA_PILO',
VALE=0.0),
INTERPOL=('LIN', ),
PARA_X='ETA_PILO',
PARA_Y='DZ',
PROL_DROITE='CONSTANT',
PROL_GAUCHE='CONSTANT',
TABLE=TAB_COMB)
IMPR_FONCTION(identifier='48:1',
COURBE=(_F(FONCTION=DX_ETA),
_F(FONCTION=DZ_ETA)),
UNITE=4)
FIN(identifier='54:1',
)
SSNL502Cの方法(荷重を加えて変位させる)と、座屈モードから初期不正を加える方法と同じ結果となりました。
コメント