図に示す片持ち梁の解析を行いました。断面形状の詳細はこちらをみてください


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を使って計算します。 […]