はじめに
- Salome-Meca 2017ではAsterStudyモジュールの採用とともに4種類のCode_Asterコマンドファイル作成用Wizard機能が廃止
- Salome-Meca 2019では廃止になった4種類と新たに追加された3種類の合計7種類のWizard(Add Stage with Assistant)が採用
- Liner thermal analysis:線形熱解析
- Isotropic liner elasticity:等方性線形弾性
- Modal analysys:モーダル解析
- Thermo-mechanical analysis:熱-構造解析(New)
- Contact analysis:接触解析(New)
- Fracture mechanics:破壊力学
- Reinforced concrete beam:鉄筋コンクリート梁(New)
今回、新たに追加されたContact analysis:接触解析を実施
例題の実施
接触による応力分布1
次図のようなスタンプ台にスタンプを押し付ける軸対称問題を考える。
スタンプ台、スタンプともに材料はS45Cとする。
メッシュ条件
スタンプ、スタンプ台をそれぞれ次の条件でメッシュ分割
- 2D:Algorithm=Quadrangle Mapping(四面体)
- 1D:Algorithm=Wire Discretisation
- 1D:Hypothesis=Max Size 3mm
Compound Meshを作成、このとき「Merge coincident nodes and elements」のチェックを外しておく
Wizardの実施
- AsterStudyモジュールで「Operations」>「Add Stage with Assistant」>「Contact analysis」を選択
- Introductionが表示されるので、「Next>」をクリック
- 「Compound_Mesh_1」を選択
- 「Next>」をクリック
- 軸対称問題なので「AXIS」を選択
- 「Next>」をクリック
- 材料定数を設定
- ヤング率に「2e5」MPa
- ポアソン比に「0.3」を入力
- 「Next>」をクリック
- 拘束条件を設定
- グループに「fix」を選択
- 「DX=DY=0」を入力
- 「Next>」をクリック
- 圧力荷重条件を設定
- グループに「press」を選択
- 「100」MPaを入力
- 「Next>」をクリック
- 接触アルゴリズム「Standard method」を選択
- Master Zoneに「contLo」を選択
- Slave Zonenに「contUp」を選択
- 「Finish」を選択
Wizardを終了するとエラーが発生
「Yes」をクリックすると、
- 解析ケース内でStage_1とStage_2に分離、
- Stage_2はテキストモードでしか編集できず、
- GUIで設定するグラフィカルモードに変更できず...
「Show Details...」をクリックすると、次のように表示されMODI_MAILLAGEでエラーが発生しているよう
str, near the line 6:
For keyword ORIE_PEAU_2D/GROUP_MA: Unexpected type: <class 'tuple'>,
expecting: [<class 'code_aster.Cata.Language.DataStructure.grma'>]
Line is: ORIE_PEAU_2D =_F (GROUP_MA =("contUp","contLo",("press",)),),)
コマンドの修正
Wizardから出力されたコマンドファイルの以下のMODI_MAILLAGEを
mesh = MODI_MAILLAGE(
reuse=mesh,
MAILLAGE=mesh,
ORIE_PEAU_2D=_F(GROUP_MA=("contUp", "contLo", ("press", )), ),
)
次のようにテキストモードで修正
mesh = MODI_MAILLAGE(
reuse=mesh,
MAILLAGE=mesh,
ORIE_PEAU_2D=_F(GROUP_MA=("contUp", "contLo", "press" ))
)
以後はグラフィカルモードで編集が可能だが、
- Stage_1をテキストモードに変更、
- Stage_2の内容をStage_1にカット&ペースト
- Stage_2を削除
を実行して一つのStageにまとめてからグラフィカルモードにしたほうがコマンドファイルの管理がしやすい。
コマンドファイルの追加
Wizardのデフォルトでは、Post処理、結果出力設定がないので追加が必要
result = CALC_CHAMP(reuse=result,
CHAM_MATER=materfl,
CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU'),
MODELE=model,
RESULTAT=result)
IMPR_RESU(FORMAT='MED',
RESU=_F(MAILLAGE=mesh,
NOM_CHAM=('DEPL', 'SIEQ_NOEU', 'SIGM_NOEU'),
RESULTAT=result),
UNITE=80)
計算結果
変位
相当応力
Asterコマンド
DEBUT(LANG='EN')
mesh = LIRE_MAILLAGE(FORMAT='MED',
UNITE=20)
mesh = MODI_MAILLAGE(reuse=mesh,
MAILLAGE=mesh,
ORIE_PEAU_2D=_F(GROUP_MA=('contUp', 'contLo', 'press')))
model = AFFE_MODELE(AFFE=_F(MODELISATION=('AXIS', ),
PHENOMENE='MECANIQUE',
TOUT='OUI'),
MAILLAGE=mesh)
mater = DEFI_MATERIAU(ELAS=_F(E=200000.0,
NU=0.3))
materfl = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
TOUT='OUI'),
MODELE=model)
lst = DEFI_LIST_REEL(DEBUT=0.0,
INTERVALLE=_F(JUSQU_A=1.0,
NOMBRE=2))
mult = DEFI_FONCTION(NOM_PARA='INST',
VALE=(0.0, 0.0, 1.0, 1.0))
times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=lst))
mecabc = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0,
DY=0.0,
GROUP_MA=('fix', )),
MODELE=model)
mecach = AFFE_CHAR_MECA(MODELE=model,
PRES_REP=_F(GROUP_MA=('press', ),
PRES=100.0))
contact = DEFI_CONTACT(ALGO_RESO_CONT='NEWTON',
FORMULATION='CONTINUE',
MODELE=model,
ZONE=_F(ALGO_CONT='STANDARD',
GROUP_MA_ESCL='contUp',
GROUP_MA_MAIT='contLo'))
result = STAT_NON_LINE(CHAM_MATER=materfl,
CONTACT=contact,
EXCIT=(_F(CHARGE=mecabc,
FONC_MULT=mult),
_F(CHARGE=mecach,
FONC_MULT=mult)),
INCREMENT=_F(LIST_INST=times),
MODELE=model)
FIN()
-
マルチフィジックスの実験/計算技術の高度化に関する研究会/CAE設計演習問題「接触による応力分布」https://www.fml.t.u-tokyo.ac.jp/multiphysics/prob/index.htm ↩