Salome-Meca2019による片持ちはりの曲げ解析（線形ソリッド/シェル/ビームの結合）

# 解析対象
+ 矩形断面はり

全長 *L* = 300 mm
幅 *b* = 100 mm
高さ *h* = 20 mm

![isometric.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608825/1a332819-7ad3-1396-03ec-2ee23301d22d.jpeg)

今回は全長300 mm のはりを1/3づつソリッド，シェル，ビーム要素でモデル化し，結合して解析する．

参考資料はこちら
(https://code-aster.org/UPLOAD/DOC/Formations/07-structural_elements.pdf)

![Modelisation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608825/be6e7bb5-93e2-cf6a-5af1-cf63ef019423.jpeg)


+ 境界条件

 先端節点に集中荷重 *P* = 1000 N
 荷重点の反対側を固定


#はりの弾性理論解

+ 材料特性
ヤング率 *E* = 200 GPa
ポアソン比 *&nu;* = 0.3

+ モデル化と理論解

下図のようにモデル化し，z軸方向の直線が，曲げモーメントを与えた後にも直線を保つと仮定する（Bernoulli-Euler theory）と，自由端変位 *v* は以下のようになる．

断面二次モーメント *I* = *bh<sup>3</sup>*/12 = 6.6667×10<sup>4</sup> mm<sup>4</sup>
自由端たわみ *v* = *PL*<sup>3</sup>/(3 *EI*) = 0.67500 mm
固定端反モーメント *M*<sub>max</sub> = PL = 3.0×10<sup>5</sup> N・mm
曲げ応力 *&sigma;*<sub>*b*</sub> = (*M*<sub>max</sub>/*I*) ×(*h*/2) = 45.000 MPa

※ 曲げ応力（bending stress）とは，はりの断面での応力の分布が線形と仮定し，曲げモーメントとつり合うようにしたものであり，実際の表面応力とは限らない．



#メッシュと節点グループ
+ 固定端側は六面体ソリッド線形要素，中間は線形シェル要素，自由端側はチモシェンコはり要素を用いる．

![Mesh&Group.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608825/8e364eb5-2f85-edf4-4dfe-941dbab36f43.jpeg)
+ グループを設定  
NodeグループはメニューMeshから[Group based on nodes of other groups] を開いて設定する

+ Faceのグループ  
シェル部：Plate  
ソリッド部の右端面：M1M2M3M4  
固定端：fix  
+ Edgeのグループ  
はり要素部：Line  
シェル部右端線：C1C2  
シェル部左端線：AB  
+ Nodeのグループ  
はり右端（自由端）：D  
シェル部左端：AB（EdgeグループABから生成）  
ソリッドとシェルの結合部：Connect1（NodeグループABとM1M2M3M4をUnionする）  
ソリッド右端面：M1M2M3M4（FaceグループM1M2M3M4から生成）  
シェル右端線：C1C2（EdgeグループC1C2から生成）  
シェルとはりの結合部：Connect2（NodeグループC1C2とCをUnionする）  
はり左端点：C  

# コマンドファイル
コマンドファイルは以下の通り．

```DEBUT(LANG='EN')

mesh = LIRE_MAILLAGE(FORMAT='MED',
                     UNITE=2)

mesh = MODI_MAILLAGE(reuse=mesh,
                     MAILLAGE=mesh,
                     ORIE_NORM_COQUE=_F(GROUP_MA=('Plate', )))

model = AFFE_MODELE(AFFE=(_F(MODELISATION=('3D', ),
                             PHENOMENE='MECANIQUE',
                             TOUT='OUI'),
                          _F(GROUP_MA=('Plate', ),
                             MODELISATION=('DKT', ),
                             PHENOMENE='MECANIQUE'),
                          _F(GROUP_MA=('Line', ),
                             MODELISATION=('POU_D_T', ),
                             PHENOMENE='MECANIQUE')),
                    MAILLAGE=mesh)

elemprop = AFFE_CARA_ELEM(COQUE=_F(EPAIS=20.0,
                                   GROUP_MA=('Plate', )),
                          MODELE=model,
                          POUTRE=_F(CARA=('HY', 'HZ'),
                                    GROUP_MA=('Line', ),
                                    SECTION='RECTANGLE',
                                    VALE=(100.0, 20.0)))

mater = DEFI_MATERIAU(ELAS=_F(E=200000.0,
                              NU=0.3))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MODELE=model)

Fix = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0,
                                 DY=0.0,
                                 DZ=0.0,
                                 GROUP_MA=('fix', )),
                     MODELE=model)

Load = AFFE_CHAR_MECA(FORCE_NODALE=_F(FZ=-1000.0,
                                      GROUP_NO=('D', )),
                      MODELE=model)

Connect1 = AFFE_CHAR_MECA(LIAISON_SOLIDE=_F(GROUP_NO=('Connect1', )),
                          MODELE=model)

Connect2 = AFFE_CHAR_MECA(LIAISON_SOLIDE=_F(GROUP_NO=('Connect2', )),
                          MODELE=model)

reslin = MECA_STATIQUE(CARA_ELEM=elemprop,
                       CHAM_MATER=fieldmat,
                       EXCIT=(_F(CHARGE=Fix),
                              _F(CHARGE=Load),
                              _F(CHARGE=Connect1),
                              _F(CHARGE=Connect2)),
                       MODELE=model)

reslin = CALC_CHAMP(reuse=reslin,
                    CONTRAINTE=('SIEF_ELNO', 'SIPO_ELNO', 'EFGE_NOEU', 'SIGM_NOEU', 'SIEF_NOEU', 'SIPO_NOEU', 'EFGE_ELNO', 'SIGM_ELNO'),
                    CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'),
                    FORCE=('REAC_NODA', ),
                    RESULTAT=reslin)

reslin1 = POST_CHAMP(EXTR_COQUE=_F(NIVE_COUCHE='SUP',
                                   NOM_CHAM=('SIGM_ELGA', 'SIGM_ELNO'),
                                   NUME_COUCHE=1),
                     GROUP_MA=('Plate', ),
                     RESULTAT=reslin)

reslin2 = CALC_CHAMP(CONTRAINTE=('SIGM_NOEU', ),
                     CRITERES=('SIEQ_NOEU', ),
                     GROUP_MA=('Plate', ),
                     RESULTAT=reslin1)

IMPR_RESU(FORMAT='MED',
          RESU=(_F(MAILLAGE=mesh,
                   NOM_CHAM=('DEPL', 'SIEF_ELGA', 'SIEQ_NOEU'),
                   RESULTAT=reslin),
                _F(GROUP_MA=('Plate', ),
                   MAILLAGE=mesh,
                   NOM_CHAM=('SIGM_NOEU', 'SIEQ_NOEU', 'REAC_NODA'),
                   RESULTAT=reslin2)),
          UNITE=80)

IMPR_RESU(FORMAT='RESULTAT',
          RESU=_F(GROUP_NO=('D', ),
                  IMPR_COOR='OUI',
                  NOM_CHAM=('DEPL', ),
                  RESULTAT=reslin),
          UNITE=8)

FIN()
```
#結果
ソリッド部に線形要素を使用しているせいか変位が小さめに算出された．

![Deformed.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608825/aa891075-760b-9fb0-11eb-0ad4f7bf6432.jpeg)

本研究の一部は科学研究費補助金（18K02963，代表：藤岡照高）の助成を受けて実施した．