CODE ASTER 片持ち梁の変形

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

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ですので、ほぼ一致しました。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です