Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Salome-Mecaで超弾性材料を使ってみた!

JunTatsuno
September 12, 2020

 Salome-Mecaで超弾性材料を使ってみた!

第19回オープンCAE勉強会@関東(構造など)での発表内容です。
https://openfem-kanto.connpass.com/event/185801/

JunTatsuno

September 12, 2020
Tweet

More Decks by JunTatsuno

Other Decks in Technology

Transcript

  1. 目次 1 自己紹介 2 2 超弾性(Hyperelasticity) 3 2.1 超弾性とは .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 ゴム材料(エラストマ)の単軸引張試験結果 . . . . . . . . . . . . . . . . . 3 3 Code_Asterの超弾性材料 4 3.1 Code_Asterで採用されている超弾性材料 . . . . . . . . . . . . . . . . . . . 4 3.2 キーワード因子ELAS_HYPER . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 ELAS_HYPER構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 単純モデルでの解析 9 4.1 ジオメトリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2 コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.3 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 付録A コマンドファイル 14 1
  2. 1 自己紹介 • 職業:オフィス家具メーカーに勤務の会社員で2003年~CAEを担当 • オープンCAE歴 ◦ 2011年05月:第32回関西CAE懇話会「CAEの新しい波、オープンソースとFOCUSス パコン」でオープンCAEを知る 実習講座「オープンCAEから始める構造解析CAEの基本」に参加し、岐阜高専の柴

    田先生、DEXCS、Adventureを知る ◦ 2011年08月:関西地区の解析塾「はじめてのオープンCAE」を受講し、Salome-Meca を知る ◦ 2011年11月:CAE懇話会の「Salome-Meca活用研究会」が発足、参加 ◦ 2012年08月:第16回「オープンCAE勉強会@岐阜(夏合宿2) 」に初参加 ◦ 2012年XX月: 「オープンCAE学会」に入会 ◦ 2013年02月:第20回「オープンCAE勉強会@関西」に初参加 ◦ 2016年10月:第09回「オープンCAE勉強会@関東(構造など) 」に初参加 • 情報発信 ◦ Twitter @Jun_Tatsuno ◦ Qiita @Jun_Tatsuno ◦ GitHub @JunTatsuno ◦ Speaker Deck @JunTatsuno ◦ YouTube 2
  3. 2 超弾性(Hyperelasticity) 2.1 超弾性とは • 物体を構成する物質の力学的特性の数理的表現のひとつ • ひずみエネルギー密度関数(単位体積あたりのひずみエネルギーを表す弾性ポテンシャ ル)を有することが特徴 •

    超弾性を有する物質を超弾性体とよび、ゴムの最も簡易なモデルとして登場したことに由 来して、数10 %~数100%の大ひずみ状態を想定 Wikipedia「超弾性」より 2.2 ゴム材料(エラストマ)の単軸引張試験結果 単軸引張試験の例 3
  4. 3 Code_Asterの超弾性材料 3.1 Code_Asterで採用されている超弾性材料 • Signorini(シニョリーニ) • Mooney-Rivlin(ムーニー・リブリン) • Néo-Hookéen(ネオ・ファッキアン)

    • 商用ソフトにあるような以下の材料モデルには未対応 ◦ Polynominal(多項式) ◦ Yeoh(ヨー) ◦ Ogden(オクデン) ◦ Arruda-Boyce(アルーダ・ボイス) ◦ Gent(ジェント) ◦ Blatz-Ko(ブラッツ・コウ) 4
  5. 3.2 キーワード因子ELAS_HYPER 材料を特徴づけるパラメータは、DEFI_MATERIAU でELAS_HYPER というキーワード で定義されています。 大きな変位、回転、および変形(DEFORMATION=’ GROT_GDEP’)をサポートしてい ます。 *1

    • 対応要素:3D(3次元) 、D_PLAN(平面ひずみ) 、C_PLAN(平面応力) • Example:テストケースSSNV187 • Reference material R5.03.19 *1 この挙動では、熱による変形を考慮することはできません。 5
  6. 3.3 ELAS_HYPER構文 Syntax 1 | ELAS_HYPER= _F ( 2 ♦

    C10 = c10, [R] 3 ◇ C01 = / c01, [R] 4 / 0.0, [DEFECT] 5 ◇ C20 = / c20, [R] 6 / 0.0, [DEFECT] 7 ◇ RHO = / rho, [R] 8 / 0.0, [DEFECT] 9 ◇ NAKED = naked, [R] 10 ◇ K = K [R] 11 ) 6
  7. 3.3.1 オペランドC01、C10、C20 C01 = c01 、C10 = c10、C20 = c20

    超弾性多項式の3つのポテンシャル関数。 単位はN/mm2 • C20 のみがNullの場合、Mooney-Rivlin(ムーニー・リブリン)型の材料モデル。 • C01とC20 がNullの場合、Néo-Hookéen(ネオ・ファッキアン)型の材料モデル。 6(C01+C10)=E のようにC10 とC01を取る場合、小さな変形では弾性非圧縮性を持つ材 料となります。ここで、E はヤング率です。 C01 C10 C20 Signorini YES YES YES Mooney-Rivlin YES YES Null Néo-Hookéen Null YES Null 7
  8. 3.3.2 オペランドNAKED とK NAKED = naked ポアソン比。-1<ν <0.5であることを確認します。 K =

    K 体積弾性率。これらの2つのパラメータは1つだけを用い、もう1つを除外します。 これらのパラメータは、材料の圧縮性をほぼ定量化します。 ユーザが提供する体積弾性率K が存在すれば、それを使用します。 存在しない場合は、次式(1)を用いて計算します。 K = 6(C01 + C10) 3(1 − 2ν) (1) ν は0.5に近い値を取ることができますが,厳密には決して等しくはありません。 ν が0.5に近すぎる場合、ポアソン比またはその体積弾性率をチェックするように、エラー メッセージが表示されます。 体積弾性率が大きいほど、材料は非圧縮性が高くなります。 3.3.3 オペランドRHO RHO = rho 質量密度(関数型の概念を受けつけません) 。サイズについてのチェックはありません。 8
  9. 4 単純モデルでの解析 単純モデルでの解析は、Code_Aster 10で記述されたCAELinuxの投稿をCode_Aster 14で 実施しました。 4.1 ジオメトリ 5(mm)×12(mm)×43(mm)のブロック形状を使用 •

    上下の2つのエリア:AtopとAbot • 2節点グループ ◦ 底面の中心節点:Nfixx ◦ y軸の最端位置にある2つの節点:Nfixy ブロック上に定義された4つのグループ 9
  10. 4.2 コマンド 材料特性は、Mooney-Rivlin(ムーニー・リブリン)型の材料モデルで設定しています。 材料設定 1 mater = DEFI_MATERIAU(ELAS_HYPER=_F(C01=2.3456, 2 C10=0.709,

    3 C20=0.0, 4 NU=0.499)) 拘束条件 1 mecabc = AFFE_CHAR_MECA(DDL_IMPO=(_F(DZ=0.0, 2 GROUP_MA=('Abot', )), 3 _F(DY=0.0, 4 GROUP_NO=('Nfixx', )), 5 _F(DX=0.0, 6 GROUP_NO=('Nfixy', ))), 7 MODELE=model) 荷重条件 1 mecach = AFFE_CHAR_MECA(MODELE=model, 2 PRES_REP=_F(GROUP_MA=('Atop', ), 3 PRES=-6.0)) 10
  11. 非線形解析コマンド 1 resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat, 2 COMPORTEMENT=_F(DEFORMATION='GROT_GDEP', 3 RELATION='ELAS_HYPER'), 4

    CONVERGENCE=_F(ITER_GLOB_MAXI=20), 5 EXCIT=(_F(CHARGE=mecabc), 6 _F(CHARGE=mecach, 7 FONC_MULT=func)), 8 INCREMENT=_F(LIST_INST=listr), 9 MODELE=model, 10 NEWTON=_F(REAC_ITER=1)) 11
  12. 4.3.2 体積変化 ここでは、-6(MPa)の圧力荷重の場合について説明します。 次の図は、X、Y、Z方向の変位量を示しています。 各方向の最大変位量は次のとおりです。 X方向変位量:0.64(mm) (両方向) Y方向変位量:1.5(mm) (両方向) Z方向変位量:34.4(mm)

    (正方向のみ) ポアソン比ν は、0.499にしたので、体積はほとんど変わらないと予想され、 変形前の体積は: V0 = 5 × 12 × 43 = 2, 580(mm3) (2) 変形後の体積は: Vdef = 2(2.5 − 0.64) × 2(6 − 1.5) × (43 + 34.4) = 2, 591(mm3) (3) 体積変化は:11(mm3)でした。 13
  13. 付録A コマンドファイル コマンドファイル 1 DEBUT(LANG='EN') 2 3 mesh = LIRE_MAILLAGE(FORMAT='MED',

    4 UNITE=20) 5 6 model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ), 7 PHENOMENE='MECANIQUE', 8 TOUT='OUI'), 9 MAILLAGE=mesh) 10 11 mater = DEFI_MATERIAU(ELAS_HYPER=_F(C01=2.3456, 12 C10=0.709, 13 C20=0.0, 14 NU=0.499)) 15 16 fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ), 17 TOUT='OUI'), 18 MAILLAGE=mesh) 19 20 listr = DEFI_LIST_REEL(DEBUT=0.0, 21 INTERVALLE=_F(JUSQU_A=1.0, 14
  14. 22 NOMBRE=20)) 23 24 times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=listr), 25 METHODE='AUTO') 26

    27 func = DEFI_FONCTION(NOM_PARA='INST', 28 PROL_DROITE='LINEAIRE', 29 VALE=(0.0, 0.0, 1.0, 1.0)) 30 31 mecabc = AFFE_CHAR_MECA(DDL_IMPO=(_F(DZ=0.0, 32 GROUP_MA=('Abot', )), 33 _F(DY=0.0, 34 GROUP_NO=('Nfixx', )), 35 _F(DX=0.0, 36 GROUP_NO=('Nfixy', ))), 37 MODELE=model) 38 39 mecach = AFFE_CHAR_MECA(MODELE=model, 40 PRES_REP=_F(GROUP_MA=('Atop', ), 41 PRES=-6.0)) 42 43 resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat, 44 COMPORTEMENT=_F(DEFORMATION='GROT_GDEP', 45 RELATION='ELAS_HYPER'), 15
  15. 46 CONVERGENCE=_F(ITER_GLOB_MAXI=20), 47 EXCIT=(_F(CHARGE=mecabc), 48 _F(CHARGE=mecach, 49 FONC_MULT=func)), 50 INCREMENT=_F(LIST_INST=listr),

    51 MODELE=model, 52 NEWTON=_F(REAC_ITER=1)) 53 54 resnonl = CALC_CHAMP(reuse=resnonl, 55 CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'), 56 CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'), 57 FORCE=('FORC_NODA', 'REAC_NODA'), 58 MODELE=model, 59 RESULTAT=resnonl) 60 61 IMPR_RESU(FORMAT='MED', 62 RESU=_F(MAILLAGE=mesh, 63 NOM_CHAM=('DEPL', 'SIGM_NOEU', 'SIEQ_NOEU', 'REAC_NODA', ' FORC_NODA'), 64 RESULTAT=resnonl), 65 UNITE=80) 66 67 FIN() 16
  16. 参考文献 [1] CAELinux,『Contrib:KeesWouters/solids/mooney-rivlin』 http://www.caelinux.org/wiki/index.php/Contrib:KeesWouters/solids/mooney-rivlin [2] EDF,『[U4.43.01] Operator DEFI_MATERIAU』 https://www.code-aster.org/V2/doc/default/en/man_u/u4/u4.43.01.pdf [3]

    EDF,『[U4.51.11] Non linear constitutive laws』 https://www.code-aster.org/V2/doc/default/en/man_u/u4/u4.51.11.pdf [4] EDF,『[R5.03.19] Hyperelastic constitutive law for nearly incompressible material』 https://www.code-aster.org/V2/doc/default/en/man_r/r5/r5.03.19.pdf [5] EDF,『[V6.04.187] SSNV187 - Validation of the law on a cube ELAS_HYPER』 https://www.code-aster.org/V2/doc/default/en/man_v/v6/v6.04.187.pdf [6] CMD2012,『Salome-Meca活用研究会「非線形分科会」の活動報告』 All content is licensed under an open-source, ’copyleft’ license: 表示 4.0 国際(CC BY 4.0) 17