Salome-Meca 2018を用いた塑性変形の基本（SSNV）

材料の特性（応力と歪の関係）が弾性域では比例（線形）しているため、構造解析の解は、容易に求める事ができます。
しかし、塑性域に入ると、応力と歪の関係が線形ではなく、非線形となるため、解を求める事が難しくなってきます。
求め方は、負荷を一度に掛けず少しづつ掛けてその都度、解を求め、最終的に解を求める方法で解きます。
したがって、あまりに大きな負荷を掛け過ぎると、途中の解が収束せず求められなくなります。
この場合は、さらに時間をかけて少しづつ負荷を掛けていく方法となります。

この資料は[オープンCAE勉強会＠岐阜](http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?OpenCAE%20Users%20Wiki)で公開されているFS氏ご提供の「[SALOME-Mecaの使用法解説](http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?SALOME-Meca%A4%CE%BB%C8%CD%D1%CB%A1%B2%F2%C0%E2)：7.0 塑性変形の基本(1),(2)」をSalome-Meca 2018（Code_Aster 13.6）のAsterStudyモジュールを用いて実行しました。

# 単純な四角柱の片持ち梁

## ジオメトリ

幅10mm×高さ20mm×長さ100mmの直方体

## 材料

- ヤング率：E=70,000MPa
- ポアソン比：$\nu$=0.3
- Stress Strain Curve Data

|Stress|Strain|
|--:|--:|
|105.0|0.0015|
|200.0|0.0500|
|300.0|0.2000|

## 拘束条件と荷重条件

|境界条件|トポロジ|境界条件の種類|条件|
|:--|:--|:--|:--|
|fix|面|変位|DX=DY=DZ=0|
|load|面|変位|DZ=5|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/42794ffa-162b-a47c-5044-1848cd1bea9c.png)

## 解析結果

相当応力図を示します。

![plastic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/63ad41ee-a312-5432-cd3b-a84c2ab6c4b3.png)


## コマンドファイル

```python:bar.comm
DEBUT(LANG='EN')

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

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

elast_pl = DEFI_FONCTION(INTERPOL=('LIN', ),
                         NOM_PARA='EPSI',
                         NOM_RESU='TOUTRESU',
                         PROL_DROITE='LINEAIRE',
                         PROL_GAUCHE='CONSTANT',
                         VALE=(0.0015, 105.0, 0.05, 200.0, 0.2, 300.0))

mater = DEFI_MATERIAU(ELAS=_F(E=70000.0,
                              NU=0.3),
                      TRACTION=_F(SIGM=elast_pl))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MAILLAGE=mesh)

depl_imp = DEFI_FONCTION(NOM_PARA='INST',
                         VALE=(0.0, 0.0, 1.0, 1.0))

listr = DEFI_LIST_REEL(DEBUT=0.0,
                       INTERVALLE=_F(JUSQU_A=1.0,
                                     PAS=0.1))

times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=listr),
                       METHODE='MANUEL')

load = AFFE_CHAR_MECA(DDL_IMPO=_F(DZ=5.0,
                                  GROUP_MA=('load', )),
                      MODELE=model)

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

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                        COMPORTEMENT=_F(DEFORMATION='SIMO_MIEHE',
                                        RELATION='VMIS_ISOT_TRAC'),
                        CONVERGENCE=_F(ITER_GLOB_MAXI=200,
                                       RESI_GLOB_MAXI=1e-06),
                        EXCIT=(_F(CHARGE=fix),
                               _F(CHARGE=load,
                                  FONC_MULT=depl_imp)),
                        INCREMENT=_F(LIST_INST=listr),
                        METHODE='NEWTON',
                        MODELE=model,
                        NEWTON=_F(MATRICE='TANGENTE',
                                  REAC_INCR=1,
                                  REAC_ITER=1))

resnonl = CALC_CHAMP(reuse=resnonl,
                     CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
                     CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU', 'EPEQ_ELNO', 'EPEQ_NOEU'),
                     DEFORMATION=('EPSP_ELNO', 'EPSP_NOEU'),
                     FORCE=('FORC_NODA', 'REAC_NODA'),
                     MODELE=model,
                     RESULTAT=resnonl,
                     TOUT='OUI')

IMPR_RESU(FORMAT='MED',
          RESU=_F(MAILLAGE=mesh,
                  RESULTAT=resnonl,
                  TOUT_CHAM='OUI'),
          UNITE=80)

FIN()
```

# 円柱の圧縮

塑性加工として、かしめ加工がありますが、このかしめを想定したモデルで塑性解析を実施します。
モデルは、円盤の上に、円柱が立っているモデルで円柱を圧縮して、円柱の形状がどのように変化するかを確認します。
（通常円柱を圧縮すると、たいこ形状になります。
円柱の端面に荷重を掛けるので、端面は、摩擦により、ほとんど伸びません。
円柱の中央付近は、圧縮により膨らんで、たいこ形状になります。）

## ジオメトリ

- 円柱外形：$\phi$10mm
- 円柱高さ：10mm
- つなぎR：R1mm
- 円盤外形：$\phi$20mm
- 円盤板厚:t3mm

## 材料

- ヤング率：E=70,000MPa
- ポアソン比：$\nu$=0.3
- Stress Strain Curve Data

|Stress|Strain|
|--:|--:|
|105.0|0.0015|
|200.0|0.0500|
|300.0|0.2000|

## 拘束条件と荷重条件

|境界条件|トポロジ|境界条件の種類|条件|
|:--|:--|:--|:--|
|fix|面|変位|DX=DY=DZ=0|
|press|面|変位|DX=DY=0<br>DZ=-3|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/e0110c49-13b5-01c4-c806-df262a6eb609.png)

## 解析結果

変形図を示します。

![pole.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/00697415-6241-8c91-4933-6554e68a5922.png)


## コマンドファイル

```python:pole.comm
DEBUT(LANG='EN')

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

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

elast_pl = DEFI_FONCTION(INTERPOL=('LIN', ),
                         NOM_PARA='EPSI',
                         NOM_RESU='TOUTRESU',
                         PROL_DROITE='LINEAIRE',
                         PROL_GAUCHE='CONSTANT',
                         VALE=(0.0015, 105.0, 0.05, 200.0, 0.2, 300.0, 2.0, 3000.0))

mater = DEFI_MATERIAU(ELAS=_F(E=70000.0,
                              NU=0.3),
                      TRACTION=_F(SIGM=elast_pl))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MAILLAGE=mesh)

depl_imp = DEFI_FONCTION(NOM_PARA='INST',
                         VALE=(0.0, 0.0, 1.0, 1.0))

listr = DEFI_LIST_REEL(DEBUT=0.0,
                       INTERVALLE=(_F(JUSQU_A=0.1,
                                      NOMBRE=5),
                                   _F(JUSQU_A=1.0,
                                      NOMBRE=5)))

times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=listr),
                       METHODE='MANUEL')

load = AFFE_CHAR_MECA(DDL_IMPO=_F(DZ=-3.0,
                                  GROUP_MA=('press', )),
                      MODELE=model)

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

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                        COMPORTEMENT=_F(DEFORMATION='SIMO_MIEHE',
                                        RELATION='VMIS_ISOT_TRAC'),
                        CONVERGENCE=_F(ITER_GLOB_MAXI=200,
                                       RESI_GLOB_MAXI=1e-06),
                        EXCIT=(_F(CHARGE=fix),
                               _F(CHARGE=load,
                                  FONC_MULT=depl_imp)),
                        INCREMENT=_F(LIST_INST=listr),
                        METHODE='NEWTON',
                        MODELE=model,
                        NEWTON=_F(MATRICE='TANGENTE',
                                  REAC_INCR=1,
                                  REAC_ITER=1))

resnonl = CALC_CHAMP(reuse=resnonl,
                     CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
                     CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU', 'EPEQ_ELNO', 'EPEQ_NOEU'),
                     DEFORMATION=('EPSP_ELNO', 'EPSP_NOEU'),
                     FORCE=('FORC_NODA', 'REAC_NODA'),
                     MODELE=model,
                     RESULTAT=resnonl,
                     TOUT='OUI')

IMPR_RESU(FORMAT='MED',
          RESU=_F(MAILLAGE=mesh,
                  RESULTAT=resnonl,
                  TOUT_CHAM='OUI'),
          UNITE=80)

FIN()
```