ディスカバリーチャンネルの怪しい伝説という番組が結構気に入っている。その
魅力は、日本では絶対不可能な位ののド派手な実験(衝突・爆発・・・・)にある
と思う。2014年1月はじめに、「正面衝突の衝撃」が放送された。こんな内容だ。
以前の番組におけるジェイミーの発言
「同スピードの同じクルマ同士が衝突したら、その威力は倍の速さで壁に衝突した
場合と同じである」 結論から言うと、ニュートンの第3法則、作用反作用の法則に
従って、時速80km同士でぶつかったのと、時速80kmで壁に衝突した場合は同じ
なので、上記発言は間違いである。
番組では、振り子を使った簡単な実験で、間違いらしいことを確かめた後、実車を
使った衝突実験を行うのである。 実験は3ケース行われた。
① 時速 80km壁との衝突
② 時速 160km壁との衝突
③ 時速 80kmのクルマ同士の衝突
合計4台の中古車(全て同じ車種)を惜しげもなく潰してしまったのである。
そこで、いつもベンチマークに使っている neonモデル (topcrunch)を使って、①、
②の実験を再現してみることにした。
Neonモデルの衝突速度は、時速56kmに設定されている。80kmなら何とか行けるか?
計算結果
少し潰れかたが足りないような気がするが、ほぼOKとしよう。では次の実験
かなり違ってしまった!!
理由は、各部材の破壊が考慮されていないためである。
このネオンモデル、殆どの材料は、多直線弾塑性で定義されていているが、破壊までは
考慮されていない。結果を見て各材料の破壊条件を個別に設定していけばいいのだが、
材料データは数百種類もあり、個別に破壊条件を定義するのは面倒この上ない。
もっと簡単に定義できる方法はないか? ある。
*MAT_ADD_EROSION というキーワードを使って、ズボラに破壊条件を設定してみた。
「各材料は塑性ひずみ 15%で破壊する」
( MAT_ADD_EROSIONでは、塑性ひずみ以外にも各種応力・ひずみで破壊設定可能)
各材料毎に MAT_ADD_EROSIONを打ち込むのは大変なので、こんなプログラムを
作って、一発で設定を完了させた。
Program MAT_ADD
character key*10
effeps=0.15
do
read(*,'(a)’,end=999) key
if ( key.eq.’*MAT_PIECE’.or.key.eq.’*MAT_HONEY’ ) then
read(*,'(i10)’) mid
write(*,'(a)’) ‘*MAT_ADD_EROSION’
write(*,'(i10,30x,f10.3)’) mid,effeps
write(*,'(8f10.1)’ ) ( 0.0,i=1,8 )
endif
enddo
999 write(*,'(a)’) ‘*END’
end
コンパイルして、
% mat_add < neon.k > 出力ファイル
これを、neon.kからINCLUDEすれば完成だ。
破壊を考慮した結果
比較のため、実験結果を再度掲載
かなり雰囲気は似てきた。
(注意:単精度計算では数値的に不安定になったため、倍精度計算実施。
衝突速度が速いため、タイムステップスケールファクタも少し小さ目に変更)
ちなみに、実験の後半はこうなる。
ここまで合わせこみたいところだが、そもそも、車種が違うのと、時間がかかりすぎるので
やめておこう。(実務に使う計算優先)