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

Salome-Meca 2020 アップデート & Assistantを用いて接触解析をやってみた!

Salome-Meca 2020 アップデート & Assistantを用いて接触解析をやってみた!

第83回オープンCAE勉強会@関西での発表内容です。
https://ocbkansai.connpass.com/event/206223/

5bf330deb12b1b4e1addfc33e41e3edc?s=128

JunTatsuno

April 03, 2021
Tweet

More Decks by JunTatsuno

Other Decks in Technology

Transcript

  1. 2021年4月3日 第83回オープンCAE勉強会@関西 Salome-Meca 2020 アップデート & Assistantを用いて接触解析をやってみた! 龍野 潤/Jun Tatsuno (CAE

    懇話会・オープン CAE 学会)
  2. 目次 1 自己紹介 2 2 Salome-Mecaとは 3 3 アップデート 4

    3.1 SALOME 9.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 code_aster stable(version 14.6)とtesting(version 15.2). . . . . . . . . . . 6 3.3 AsterStudy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 MEDConverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Assistantを用いて接触解析をやってみた! 9 4.1 ジオメトリの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 メッシュの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3 コマンドファイルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.4 結果の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 付録A アシスタント出力結果比較 21 1
  3. 1 自己紹介 • 職業:オフィス家具メーカーに2001年入社、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年12月: 「オープンCAE学会」に入会 ◦ 2013年02月:第20回「オープンCAE勉強会@関西」に初参加 ◦ 2016年10月:第09回「オープンCAE勉強会@関東(構造など) 」に初参加 • 情報発信 ◦ Twitter @Jun_Tatsuno ◦ Qiita @Jun_Tatsuno ◦ GitHub @JunTatsuno ◦ Speaker Deck @JunTatsuno ◦ YouTube 2
  4. 2 Salome-Mecaとは • EDF(フランス電力公社)が提供している、Linuxベースのオープンソース構造・熱解析ソ フト ◦ Code_Aster:熱・力学問題解析ソルバー ◦ Salome:プリポストを中心とした物理シミュレーションの汎用プラットフォーム ◦

    Salome-Meca:Salome+Code_Aster(ソフト的統合) • Code_Asterは、構造力学、熱力学を中心に非常に高度で多彩な機能と400を超える要素 (1次元、2次元、3次元ほか)を有しています。また、2,000以上のテストケースと、13,000 ページ以上のドキュメント(使用方法、テクニック、理論的背景) 、公式フォーラムなどが あり、他のオープンソースCAEソフトと較べてサポート体制が充実しているのが特長です。 • Code_Aster & Salome-Meca日本語解説より https://sites.google.com/site/codeastersalomemeca/home 3
  5. 3 アップデート Salome-Meca 2020が2020年12月18日にリリース[1]され、SALOME 9.4.0を採用[2] 3.1 SALOME 9.4.0 3.1.1 GUIモジュール

    • SALOME OCC Viewerでは、円形領域でエンティティを選択する機能を実装 3.1.2 Shaperモジュール • PartSetをGEOMにエクスポートする機能 • multi-level Compoundsへの隠蔽 • CompsolidsとCompoundsの修復 • ビューを特定の平面に対して垂直に設定 • 既存のスケッチの基本平面を変更する機能 • 結果を除去する機能 • 結果を透明にする機能 • 任意の面への押し出し(平面である必要はあり ません) • スケッチャー内でフリーポイントを検出 • 2つのポイントからエッジを構築 • この黄色のハイライトを有効化または無効化 • グループのフィルター • グループに対する組み合わせ操作 • 円弧と線分の間に直交拘束を適用する機能 • 新しい円弧作成モード:直線エッジに対して垂直 • エッジを描画するときの水平/垂直拘束の自動化 • 円と円弧の表示と選択を改善 • 対話式ビュー操作モードでスケッチャーを使用 する機能 4
  6. • 実際のスケッチの寸法を拡大表示 • 円弧に中点を適用する機能 • 新規エンティティ:楕円と楕円の弧 • 複数のグループフィーチャを選択したときに 「Move to

    the end(最後に移動) 」を呼び出す 機能 • 面取りを作成する機能 • テキストファイルからポイントをインポートす る機能 • テキストファイルからパラメーターをインポー トする機能 3.1.3 MG-CADSurfプラグインモジュール • SALOME Mesh-GemsプラグインのGUIが更新され、Mesh-Gems 2.9.6オプションを採用 3.1.4 ParaVisモジュール • ParaViewサードパーティ製品は、OSPRAYライブラリのサポートを使用して構築され、 ParaVisモジュールのレイトレーシング可視化機能を採用 5
  7. 3.2 code_aster stable(version 14.6)とtesting(version 15.2) Table.1 Salome-Mecaのリリース履歴 Salome-Meca Salome Code_Aster

    備考 stable testing 2011.1 5.1.5 10.3 2011.2 6.3.0 10.5 Paravis、Homardを採用 20013.1 6.6.0 10.8 11.3 32bit版の最終リリース 20013.2 6.6.0 11.4 11.3 2014.1 7.3.0 11.5 12.1 Post-Pro廃止 2014.2 7.4.0 11.6 12.2 2015.1 11.7 12.3 2015.2 7.6.0 12.4 11.8 2016 7.8.0 12.6 13.2 2017 13.4 12.8 Aster廃止(Wizard含む) AsterStudyを採用 2018 13.6 14.2 2019 9.3.0 14.4 Shaper、Assistant,、PostPro等を採用 2020 9.4.0 14.6 15.2 最新版 6
  8. 3.3 AsterStudy • Salome-Meca 2017から2019までのAsterStudyモジュールでは一部のコマンド名が英語 表示 • 2020では、Table.2のように本来のコマンド名表示に変更 Table.2 コマンド名表示

    Category AsterStudy2017∼2019での表示名 コマンド名 Mesh Modify a mesh MODI_MAILLAGE Read a mesh LIRE_MAILLAGE Model Definition Assign finite element AFFE_MODELE Material Assign a material AFFE_MATERIAU Define a material DEFI_MATERIAU Function and Lists Define function DEFI_FONCTION BC and Load Assign mechanical load AFFE_CHAR_MECA Assign thermal load AFFE_CHAR_THER Assign variable thermal load AFFE_CHAR_THER_F Analysis Static mechanical analysis MECA_STATIQUE Output Linear thermal analysis THER_LINEAIRE 7
  9. 3.4 MEDConverter • SystusまたはAbaqusフォーマットからMEDフォーマットにメッシュを変換する MEDConverterを採用 ◦ Meshモジュールのメニューバーより、Tools Plugins salome_meca Mesh

    Converterで 起動 Fig.1 MEDConverterの起動画面 8
  10. 4 Assistantを用いて接触解析をやってみた! Assistant「Contact analysis」を用いて、Fig.2のようなスタンプ台にスタンプを押し付ける軸 対称問題[3]を考える。スタンプ台、スタンプともに材料はS45C(Table.3を参照)とする。 Fig.2 スタンプ台とスタンプ Table.3 S45Cの材料定数 ヤング率E

    ポアソン比ν 降伏応力σY 引張強さσB 2.05 × 105MPa 0.28 600MPa 900MPa 9
  11. 4.1 ジオメトリの作成 4.1.1 グループ設定 • press:圧力荷重を設定 • fix:固定を設定 • contUp:接触する側の面(スレイブ)

    • contDown:接触する相手側の面(マスター) Fig.3 分布荷重 Fig.4 接触解析 10
  12. 4.2 メッシュの作成 4.2.1 メッシュ分割設定 • デフォルトでは10分割でメッシュを作成 • サブメッシュで赤い線を30分割、青い線を20分割でメッシュを作成 Fig.5 メッシュ分割設定

    11
  13. 4.2.2 メッシュ分割結果 Fig.6 分布荷重 Fig.7 接触解析 12

  14. 4.3 コマンドファイルの作成 code_aster testing (version 15.2)のコマンドファイルを作成 4.3.1 分布荷重 Salome-Meca 2020のアシスタント「Isotropic

    liner elasticity」の出力結果を元にコマンド ファイルをCode.1のように修正 Code. 1 分布荷重のコマンドファイル 1 DEBUT(LANG='FR') 2 3 mesh = LIRE_MAILLAGE(FORMAT='MED', 4 UNITE=20) 5 6 mesh = MODI_MAILLAGE(reuse=mesh, # メッ シュ の 修 正 処 理 を 追 加 7 MAILLAGE=mesh, 8 ORIE_PEAU_2D=_F(GROUP_MA=('press', 'fix'))) 9 10 model = AFFE_MODELE(AFFE=_F(MODELISATION='AXIS', 11 PHENOMENE='MECANIQUE', 12 TOUT='OUI'), 13 MAILLAGE=mesh) 14 15 mater = DEFI_MATERIAU(ELAS=_F(COEF_AMOR=1.0, 13
  15. 16 E=205000.0, 17 NU=0.28)) 18 19 materfl = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),

    20 TOUT='OUI'), 21 MODELE=model) 22 23 mecabc = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0, 24 DY=0.0, 25 GROUP_MA=('fix', )), 26 MODELE=model) 27 28 mecach = AFFE_CHAR_MECA(MODELE=model, 29 PRES_REP=_F(GROUP_MA=('press', ), 30 PRES=100.0)) 31 32 result = MECA_STATIQUE(CHAM_MATER=materfl, 33 EXCIT=(_F(CHARGE=mecabc, 34 TYPE_CHARGE='FIXE_CSTE'), 35 _F(CHARGE=mecach, 36 TYPE_CHARGE='FIXE_CSTE')), 37 MODELE=model) 38 39 result = CALC_CHAMP(reuse=result, # Post処 理 を 追 加 40 CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'), 14
  16. 41 CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'), 42 MODELE=model, 43 RESULTAT=result) 44 45 IMPR_RESU(FORMAT='MED',

    46 RESU=_F(IMPR_NOM_VARI='OUI', 47 INFO_MAILLAGE='NON', 48 MAILLAGE=mesh, # 追 加 49 NOM_CHAM=('DEPL', 'SIEQ_NOEU', 'SIGM_NOEU'), # 出 力 す る フィー ル ド (結 果) を 追 加 50 RESULTAT=result), 51 UNITE=80) 52 53 FIN() 15
  17. 4.3.2 接触解析 Salome-Meca 2020のアシスタント「Contact analysis」の出力結果を元にコマンドファイル をCode.2のように修正 Code. 2 接触解析のコマンドファイル 1

    DEBUT(LANG='FR') 2 3 mesh = LIRE_MAILLAGE(FORMAT='MED', 4 UNITE=20) 5 6 mesh = MODI_MAILLAGE(reuse=mesh, 7 MAILLAGE=mesh, 8 ORIE_PEAU_2D=_F(GROUP_MA=('contUp', 'press', 'contDown'))) 9 10 model = AFFE_MODELE(AFFE=_F(MODELISATION='AXIS', 11 PHENOMENE='MECANIQUE', 12 TOUT='OUI'), 13 MAILLAGE=mesh) 14 15 mater = DEFI_MATERIAU(ELAS=_F(COEF_AMOR=1.0, 16 E=205000.0, 17 NU=0.28)) 18 19 materfl = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ), 16
  18. 20 TOUT='OUI'), 21 MODELE=model) 22 23 lst = DEFI_LIST_REEL(DEBUT=0.0, 24

    INTERVALLE=_F(JUSQU_A=1.0, 25 NOMBRE=2)) 26 27 mult = DEFI_FONCTION(NOM_PARA='INST', 28 VALE=(0.0, 0.0, 1.0, 1.0)) 29 30 times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=lst)) 31 32 mecabc = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0, 33 DY=0.0, 34 GROUP_MA=('fix', )), 35 MODELE=model) 36 37 mecach = AFFE_CHAR_MECA(MODELE=model, 38 PRES_REP=_F(GROUP_MA=('press', ), 39 PRES=100.0)) 40 41 contact = DEFI_CONTACT(ALGO_RESO_CONT='NEWTON', 42 FORMULATION='CONTINUE', 43 MODELE=model, 44 ZONE=_F(ADAPTATION='CYCLAGE', 17
  19. 45 ALGO_CONT='STANDARD', 46 APPARIEMENT='MAIT_ESCL', 47 COEF_CONT=100.0, 48 CONTACT_INIT='INTERPENETRE', 49 DIST_APPA=-1.0,

    50 DIST_COQUE='NON', 51 DIST_POUTRE='NON', 52 GLISSIERE='NON', 53 GROUP_MA_ESCL='contUp', 54 GROUP_MA_MAIT='contDown', 55 INTEGRATION='AUTO', 56 NORMALE='MAIT', 57 RESOLUTION='OUI', 58 TOLE_PROJ_EXT=0.5, 59 TYPE_PROJECTION='ORTHOGONALE', 60 VECT_ESCL='AUTO', 61 VECT_MAIT='AUTO')) 62 63 result = STAT_NON_LINE(CHAM_MATER=materfl, 64 CONTACT=contact, 65 EXCIT=(_F(CHARGE=mecabc, 66 FONC_MULT=mult, 67 TYPE_CHARGE='FIXE_CSTE'), 68 _F(CHARGE=mecach, 69 FONC_MULT=mult, 18
  20. 70 TYPE_CHARGE='FIXE_CSTE')), 71 INCREMENT=_F(LIST_INST=times, 72 PRECISION=1e-06), 73 MODELE=model) 74 75

    result = CALC_CHAMP(reuse=result, # Post処 理 を 追 加 76 CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'), 77 CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'), 78 MODELE=model, 79 RESULTAT=result) 80 81 IMPR_RESU(FORMAT='MED', # 結 果 出 力 を 追 加 82 RESU=_F(IMPR_NOM_VARI='OUI', 83 INFO_MAILLAGE='NON', 84 MAILLAGE=mesh, 85 NOM_CHAM=('DEPL', 'SIEQ_NOEU', 'SIGM_NOEU'), 86 RESULTAT=result), 87 UNITE=80) 88 89 FIN() 19
  21. 4.4 結果の評価 • 相当応力(0~70MPa)で応力分布を評価すると、 ◦ ピークは接触点より少し下にもぐったところ Fig.8 分布荷重 Fig.9 接触解析

    20
  22. 付録A アシスタント出力結果比較 code_aster stable(version 14.6)とtesting(version 15.2)のアシスタント「Contact Analysis」出力結果比較 Fig.10 stable(1/2) Fig.11

    testing(1/2) 21
  23. Fig.12 stable(2/2) Fig.13 testing(2/2) 22

  24. 参考文献 [1] EDF. salome_meca 2020 under lgpl license is available

    for download - code_aster. https://www.code-aster.org/V2/spip.php?article1077, Dec. 2019. (Accessed on 04/03/2021). [2] EDF. 18 december 2019 - salome version 9.4.0 — salome platform. https://www.salome-platform.org/news/news-archive/news-2019/ 18-dec-2019-salome-version-9.4.0, Dec. 2020. (Accessed on 04/03/2021). [3] CAE設計演習問題作成WG. https://www.fml.t.u-tokyo.ac.jp/multiphysics/prob/index.htm. https://www.fml.t.u-tokyo.ac.jp/multiphysics/prob/index.htm, Apr. 2013. (Accessed on 04/03/2021). 23