SOL2SPH を利用して、ソリッド要素破断(削除)後の剛性、質量を考慮する方法
始めに
Radioss では、材料の破断を要素の削除で表現することが一般的ですが、要素を削除してしまうと、その分の質量が無くなってしまうことになります。ただし、だからと言って、いつまでも要素を削除しないと、今度は要素品質の問題で計算の不安定性が増して来ます。このジレンマを解決する手法として SOL2SPH、ソリッド要素を削除するときに、代わりの SPH を生成する、という機能があります。本書では、その機能の使い方を説明します。
基本設定
SOL2SPH を適用したいソリッドプロパティは、次のようにします。Ndir はヘキサ要素 1辺あたりの生成 SPH 数です。Ndir=1 で 1個、2 で 2^3=8 個、3 で 3^3=27 個の SPH が生まれます。spphpartID は /PROP/SPH を指定された /PART の ID です。この /PART はあらかじめ SPH を作っておく必要はありません。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /PROP/SOLID/1 solid # Isolid Ismstr Icpre Itetra10 Inpts Itetra4 Iframe Dn 24 # qa qb h Lambda Mu # deltaT_min Istrain Ihkt # 普通のソリッドプロパティと違うのは次のラインです。 # Ndir sphpartID 1 2 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
/PROP/SPH の必須項目は Mp です。先ほどの Ndir から生成される SPH の数と、材料密度と、メッシュサイズから、SPH 一個当たりの質量を入力します。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| ##HWCOLOR properties 2 21 /PROP/SPH/2 sph # Mp qa qb Alpha_cs skew_ID h_1D 8.00000000000000E-06 # Order h Xi_Stab #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
ソリッド要素のパートと SPH のパートに割り当てる材料は、全く別に設定できますが、材料タイプは同じである必要があります。簡単にソリッド要素を削除できる要素が望ましいので、/MAT/LAW36 をまずはお薦めします。例えば、このように密度もヤング率も SS 線図もまったく異なっていても大丈夫です。下の例では、最初の材料がソリッド要素向けなので、要素を削除するために Eps_p_max=0.3 (塑性ひずみが 0.3 に到達すると要素削除) を入れる必要があります。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_TAB/1 solid # Init. dens. 1.00000000000000E-09 # E Nu Eps_p_max Eps_t Eps_m 2000.0 0.3 0.3 # N_funct F_smooth C_hard F_cut Eps_f VP 1 # fct_IDp Fscale Fct_IDE EInf CE # func_ID1 func_ID2 func_ID3 func_ID4 func_ID5 1 # Fscale_1 Fscale_2 Fscale_3 Fscale_4 Fscale_5 0.0 # Eps_dot_1 Eps_dot_2 Eps_dot_3 Eps_dot_4 Eps_dot_5 0.0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_TAB/2 sph # Init. dens. 7.80000000000000E-09 # E Nu Eps_p_max Eps_t Eps_m 210000.0 0.3 # N_funct F_smooth C_hard F_cut Eps_f VP 1 # fct_IDp Fscale Fct_IDE EInf CE # func_ID1 func_ID2 func_ID3 func_ID4 func_ID5 2 # Fscale_1 Fscale_2 Fscale_3 Fscale_4 Fscale_5 0.0 # Eps_dot_1 Eps_dot_2 Eps_dot_3 Eps_dot_4 Eps_dot_5 0.0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
こちらが、1要素で引張り試験をしたモデルです: sol2sph_one_elem_tens.7z
このように、塑性ひずみ 0.3 到達で SPH に切り替わるのが分かります (分かりやすいように SPH を大きな球で描画しています)。切り替わった瞬間に、応力、ひずみ、塑性ひずみなどを引き継ぐので、この例では、切り替え前後で塑性ひずみが 0.3 (赤) のままになっています。
接触を考慮する場合
多くの場合、生まれた SPH ともともと周りにあるソリッド要素の接触を考慮したいと思います。使用できる接触タイプは /INTER/TYPE7 のみとなります。
次の、立方体に球をぶつけるモデルを用いて説明します。
こちらが接触設定です。
Istf=0 と Stfac で接触剛性を調整します。一般的に良く使われるのは Istf=4 ですが、Radioss は SPH の剛性を計算せずに 0 として扱うため、Istf=4 だと接触剛性がゼロとなってしまい、全て貫通してしまうので注意してください。
Idel=-1 は SOL2SPH の SPH とソリッドを接触させる時に、必須の設定です。ソリッド要素が削除されたとき、その部分のサーフェス定義を消して、中の SPH を有効化する設定です。
Ibag=1 はオプションです。実は SPH 有効化前から、接触判定自体はしています。Ibag=1 の場合、材料の状態を問わず、接触判定となったタイミングで SPH に切り替わります。もともと品質の悪い要素を不安定になる前に SPH 化できるメリットがありますが、一方、Gapmin が大きい場合、まだまだ変形できそうな要素まで SPH に切り替わるという一面もあります。
Igap=0 で Gapmin にて接触判定距離を決める必要があります。というのも SPH に対して接触判定距離の自動計算は行われないからです。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /INTER/TYPE7/1 #Title type7 # grnod_id surf_id Istf Ithe Igap Ibag Idel Icurv Iadm 3 2 0 0 1 -1 0 # Fscale_gap Gap_max Fpenmax # Stmin Stmax dtmin Irem_gap Irem_i2 0 # Stfac Fric Gapmin Tstart Tstop .01 0.2 3.0 # IBC Inacti VisS VisF Bumult 000 # Ifric Ifiltr Xfreq Iform sens_ID fct_IDF Ascale_F fric_ID #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
grnod_id はモデル上は空っぽの SPH パートを選択します。定義上空っぽですが、大丈夫です。surf_id は、破断していった内側の要素面が大事なので /SURF/PART/ALL をソリッド要素パートに適用します。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /GRNOD/PART/3 #title GrnodPartForInterfaceId_1 # item_ID1 item_ID2 item_ID3 item_ID4 item_ID5 item_ID6 item_ID7 item_ID8 item_ID9 item_ID10 2 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /SURF/PART/ALL/2 #title sotogawa # item_ID1 item_ID2 item_ID3 item_ID4 item_ID5 item_ID6 item_ID7 item_ID8 item_ID9 item_ID10 1 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----|
そして材料は、今回は全く同じ材料ですが、 ソリッド要素用に EPS_p_max=0.1 として、塑性ひずみ 0.1 で SPH に切り替わるようにしています。逆に SPH は EPS_p_max=1e30 として、何が何でも剛性を失わないようにしています。
#---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_TAB/1 yowai_sotogawa # Init. dens. 1.00000000000000E-09 # E Nu Eps_p_max Eps_t Eps_m 1000.0 0.3 0.1 # N_funct F_smooth C_hard F_cut Eps_f VP 1 # fct_IDp Fscale Fct_IDE EInf CE # func_ID1 func_ID2 func_ID3 func_ID4 func_ID5 1 # Fscale_1 Fscale_2 Fscale_3 Fscale_4 Fscale_5 0.0 # Eps_dot_1 Eps_dot_2 Eps_dot_3 Eps_dot_4 Eps_dot_5 0.0 #---1----|----2----|----3----|----4----|----5----|----6----|----7----|----8----|----9----|---10----| /MAT/PLAS_TAB/2 tuyoi_utigawa # Init. dens. 1.00000000000000E-09 # E Nu Eps_p_max Eps_t Eps_m 1000.0 0.31.00000000000000E+30 # N_funct F_smooth C_hard F_cut Eps_f VP 1 # fct_IDp Fscale Fct_IDE EInf CE # func_ID1 func_ID2 func_ID3 func_ID4 func_ID5 1 # Fscale_1 Fscale_2 Fscale_3 Fscale_4 Fscale_5 0.0 # Eps_dot_1 Eps_dot_2 Eps_dot_3 Eps_dot_4 Eps_dot_5 0.0
この例では 4層目までの破壊となっています。
このデータはこちらです: 接触の例.7z
参考 SOL2SPH 無しの場合
単純に先ほどのモデルから SOL2SPH と SPH の接触を省いた場合、8枚ほど割ってしまいます。要素の変形が厳しいが、質量を消すわけにもいかない、そのようなときは SOL2SPH を活用してみてください。
このデータはこちら: sol2sph無し.7z