図に示す片持ち梁の解析を行いました。断面形状の詳細はこちらをみてください
commファイルは次のとおり。通常版のCodeAster用です。
DEBUT(LANG='EN',); meshinit=LIRE_MAILLAGE(UNITE=20, FORMAT='MED',); modinit=AFFE_MODELE(MAILLAGE=meshinit, AFFE=_F(TOUT='OUI', PHENOMENE='MECANIQUE', MODELISATION='3D',),);
二次要素に変換します。
meshmd0=CREA_MAILLAGE(MAILLAGE=meshinit, LINE_QUAD=_F(TOUT='OUI',),);
中間節点をもつ要素に変更します。要素番号はNA+数字、節点番号はNB+数字で新たに番号付けされます。
meshmd1=CREA_MAILLAGE(MAILLAGE=meshmd0, MODI_MAILLE=(_F(TOUT='OUI', OPTION='QUAD8_9', PREF_NOEUD='NA',), _F(TOUT='OUI', OPTION='TRIA6_7', PREF_NOEUD='NB',),),);
meshmd1=DEFI_GROUP(reuse =meshmd1, MAILLAGE=meshmd1, CREA_GROUP_NO=(_F(GROUP_MA='UR', NOM='nUR',), _F(GROUP_MA='BR', NOM='nBR',), _F(GROUP_MA='UL', NOM='nUL',), _F(GROUP_MA='BL', NOM='nBL',), _F(GROUP_MA='BRR', NOM='nBRR',), _F(GROUP_MA='URR', NOM='nURR',), _F(GROUP_MA='ULR', NOM='nULR',), _F(GROUP_MA='BLR', NOM='nBLR',),),); meshmd1=DEFI_GROUP(reuse =meshmd1, MAILLAGE=meshmd1, CREA_GROUP_NO=(_F(DIFFE=('nBRR','nBR',), NOM='exBRR',), _F(DIFFE=('nURR','nUR',), NOM='exURR',), _F(DIFFE=('nULR','nUL',), NOM='exULR',), _F(DIFFE=('nBLR','nBL',), NOM='exBLR',),),); modmd0=AFFE_MODELE(MAILLAGE=meshmd1, AFFE=_F(GROUP_MA=('BRR','URR','ULR','BLR','BRF','URF','ULF','BLF','top',), PHENOMENE='MECANIQUE', MODELISATION='COQUE_3D',),); th = 0.1; shell=AFFE_CARA_ELEM(MODELE=modmd0, COQUE=(_F(GROUP_MA=('BRR','URR','BLR','ULR','BRF','URF','BLF','ULF',), EPAIS=th,), _F(GROUP_MA='top', EPAIS=10.0, VECTEUR=(1.0,0.0,0.0,),),),); steel=DEFI_MATERIAU(ELAS=_F(E=2.1e+5, NU=0.28,),); materal=AFFE_MATERIAU(MAILLAGE=meshmd1, AFFE=_F(TOUT='OUI', MATER=steel,),); condL=AFFE_CHAR_MECA(MODELE=modmd0, DDL_IMPO=_F(GROUP_NO=('nUL','nUR','nBL','nBR',), DX=0.0,DY=0.0,DZ=0.0,DRX=0.0,DRY=0.0,DRZ=0.0,), FORCE_NODALE=_F(GROUP_NO='load', FY=-100.0,),); resu=MECA_STATIQUE(MODELE=modmd0, CHAM_MATER=materal, CARA_ELEM=shell, EXCIT=_F(CHARGE=condL,), OPTION='SIEF_ELGA', SOLVEUR=_F(METHODE='MUMPS',),); resu=CALC_CHAMP(reuse =resu, RESULTAT=resu, EXCIT=_F(CHARGE=condL,), CONTRAINTE=('SIEF_ELNO','EFGE_NOEU','EFGE_ELNO',), CRITERES='SIEQ_ELNO',); SIEQ_SUP=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),); SIEF_SUP=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='SUP',),); SIEQ_SUP=CALC_CHAMP(reuse =SIEQ_SUP, RESULTAT=SIEQ_SUP, CRITERES='SIEQ_NOEU',); SIEF_SUP=CALC_CHAMP(reuse =SIEF_SUP, RESULTAT=SIEF_SUP, CONTRAINTE='SIEF_NOEU',); SIEQ_INF=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),); SIEF_INF=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='INF',),); SIEQ_INF=CALC_CHAMP(reuse =SIEQ_INF, RESULTAT=SIEQ_INF, CRITERES='SIEQ_NOEU',); SIEF_INF=CALC_CHAMP(reuse =SIEF_INF, RESULTAT=SIEF_INF, CONTRAINTE='SIEF_NOEU',); SIEQ_MOY=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),); SIEF_MOY=POST_CHAMP(RESULTAT=resu, EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO', NUME_COUCHE=1, NIVE_COUCHE='MOY',),); SIEQ_MOY=CALC_CHAMP(reuse =SIEQ_MOY, RESULTAT=SIEQ_MOY, CRITERES='SIEQ_NOEU',); SIEF_MOY=CALC_CHAMP(reuse =SIEF_MOY, RESULTAT=SIEF_MOY, CONTRAINTE='SIEF_NOEU',);
2次要素で行った計算結果をSalomeで作成した1次要素のモデルで表示できるようにします。
QSUP_INI=PROJ_CHAMP(RESULTAT=SIEQ_SUP, MODELE_1=modmd0, MODELE_2=modinit,); FSUP_INI=PROJ_CHAMP(RESULTAT=SIEF_SUP, MODELE_1=modmd0, MODELE_2=modinit,); QINF_INI=PROJ_CHAMP(RESULTAT=SIEQ_INF, MODELE_1=modmd0, MODELE_2=modinit,); FINF_INI=PROJ_CHAMP(RESULTAT=SIEF_INF, MODELE_1=modmd0, MODELE_2=modinit,); QMOY_INI=PROJ_CHAMP(RESULTAT=SIEQ_MOY, MODELE_1=modmd0, MODELE_2=modinit,); FMOY_INI=PROJ_CHAMP(RESULTAT=SIEF_MOY, MODELE_1=modmd0, MODELE_2=modinit,); initResu=PROJ_CHAMP(RESULTAT=resu, MODELE_1=modmd0, MODELE_2=modinit,); IMPR_RESU(FORMAT='MED', UNITE=80,
結果を出力します。
RESU=(_F(RESULTAT=initResu, NOM_CHAM='DEPL',), _F(RESULTAT=QSUP_INI,), _F(RESULTAT=FSUP_INI,), _F(RESULTAT=QINF_INI,), _F(RESULTAT=FINF_INI,), _F(RESULTAT=QMOY_INI,), _F(RESULTAT=FMOY_INI,),),);
最後に、荷重点の変位の出力を指示します。
TB_D=POST_RELEVE_T(ACTION=_F(OPERATION='EXTRACTION', INTITULE='Disp', RESULTAT=resu, NOM_CHAM='DEPL', GROUP_NO='load', NOM_CMP=('DX','DY','DZ',),),); IMPR_TABLE(TABLE=TB_D, FORMAT='TABLEAU', UNITE=8, SEPARATEUR=' ,',); FIN();
結果は、
先端(荷重点)における変位は
です。(DYの詳細な値は-2.43685です。)材料力学の公式によれば、たわみは次式から求められます。
計算結果はDY=-2.425ですので、ほぼ一致しました。
コメント
[…] こちらの片持ち梁の例について解析してみました。 […]
[…] こちらの梁の計算 についてbeam要素を用いてAster Studyを使って計算します。 […]