接触解析の続きです。今回は板のモデリングにDKTを使用しました。
Salomeで作成したモデルは下図のようになります。接触の設定でsolid要素がMAIT、DKT要素がESCLとなります。code asterのtraining資料に示されていますが、安定した解析のために、メッシュの大きさはMAIT側≧ESCL側となるようにします。MAIT側<ESCL側とすると接触計算が収束しなかったりすり抜けが起きたりしました。
commのポイントはDEFI_CONTACTの部分です。
contact = DEFI_CONTACT(identifier='15:1', ALGO_RESO_CONT='NEWTON', ALGO_RESO_GEOM='NEWTON', FORMULATION='CONTINUE', MODELE=model, ZONE=_F(ADAPTATION='CYCLAGE', ALGO_CONT='STANDARD', CARA_ELEM=softSp, COEF_CONT=100.0, CONTACT_INIT='INTERPENETRE', DIST_COQUE='OUI', GLISSIERE='OUI', GROUP_MA_ESCL=('plane', ), GROUP_MA_MAIT=('sbottom', ), RESOLUTION='OUI'))
接触のペアを指定するZONEの部分で、MAITにsolid要素、ESCLにDKT要素を設定します。逆にすると計算が収束しませんでした。DKT要素の厚みを考慮するためDIST_COQUEをOUIとします。
計算結果です。stampのZ方向変位を示します。
Case 1:DIST_COQUE=’OUI’
Case 2:DIST_COQUE=’NON’
Case 3:DIST_COQUE=’NON’、DIST_APPA=5.0、TOLE_PROJ_EXT=0.0
Case 1はDKT要素の厚みが考慮されていて、初期隙間0.1mm下降後に接触し下降量はDKT要素の変形量となっています。Case 2と3では、初期隙間0.1mmとDKT要素の厚み分下降後に接触が始まっていました。
そこで、DIST_COQUE=’NON’とした時は、次のようにして接触職距離を指定します。
そのために関数を定義します。ここでは板の厚さは一定なので、板厚の半分の値を定数で与えます。
F_DIST_E = DEFI_CONSTANTE(NOM_RESU='TOUTRESU', VALE=5.0)
このF_DIST_EをDEFI_CONTACTのDIST_ESCLに追加します。
contact = DEFI_CONTACT(ALGO_RESO_CONT='NEWTON', ALGO_RESO_GEOM='NEWTON', CONT_STAT_ELAS=0, FORMULATION='CONTINUE', FROTTEMENT='SANS', LISSAGE='NON', MODELE=model, RESI_CONT=-1, RESI_GEOM=1e-06, STOP_INTERP='NON', VERI_NORM='OUI', ZONE=_F(ADAPTATION='CYCLAGE', ALGO_CONT='STANDARD', APPARIEMENT='MAIT_ESCL', COEF_CONT=100.0, CONTACT_INIT='INTERPENETRE', DIST_APPA=-1.0, DIST_COQUE='NON', DIST_ESCL=F_DIST_E, DIST_POUTRE='NON', GLISSIERE='OUI', GROUP_MA_ESCL='plane', GROUP_MA_MAIT='sbottom', INTEGRATION='AUTO', NORMALE='MAIT', RESOLUTION='OUI', TOLE_PROJ_EXT=0.5, TYPE_PROJECTION='ORTHOGONALE', VECT_ESCL='AUTO', VECT_MAIT='AUTO'))
結果をCase 4としてCase 2と比較します。DIST_COQUE=’OUI’の場合と同じタイミングで接触が始まっています。
コメント