このQ&Aは役に立ちましたか?
メッシュが小さすぎることによるエラー?(FEM)
2023/10/20 08:25
- メッシュサイズを変えて、いわゆるGrid convergence studyをしている中で、メッシュが小さすぎるとシミュレーション結果がおかしくなることがわかりました。
- メッシュを細かくすると、要素数が増えますが結果に近づいていきます。しかし、要素数がある程度増えると結果が途中で終わってしまうような見た目になります。
- ソフトウェア上ではエラーも警告も出ないため、メッシュサイズ以外の設定は問題ありません。なぜメッシュサイズの違いで結果が変わるのか、原因がわかりません。
メッシュが小さすぎることによるエラー?(FEM)
2020/03/23 07:32
現在、Marcを使って衝撃吸収のシミュレーションをしています。
メッシュが小さすぎるデメリットは計算コスト以外に何が考えられますでしょうか?
というのも、メッシュサイズを変えて、いわゆるGrid convergence studyをしているのですが、途中までは精度が良くなるのに、さらに小さくすると、シミュレーション結果がおかしくなります。(添付の画像:メッシュを細かくして要素数を上げていくと実験結果に近づきますが(8000まで)、要素数が18000になると途中で終わっているような見た目になります。)
ソフトウェア上では、警告もエラーもありません。境界条件、材質の情報等、メッシュサイズ以外の設定は全て同じです。
衝撃を与えるのに「テーブルと座標系」で変位と時間を定義しており、メッシュサイズの違いでこのような結果の違いが生じる原因が推測できません。
宜しくお願いします。
質問者が選んだベストアンサー
解析そのものについてはあまり詳しくないですが、こうしたソフト系のセオリーとして「要素を微細にしすぎると結果が狂う」というのは実務上は結構あります。
実際の理由としてはソフトごとに色々あるのでしょうが、個人的な経験として一番多かったのは『内部的に扱える数には上限がある』というようなものでした。
要はプログラム的な、変数での最大桁数などに絡む「オーバーフロー」というやつです。
http://e-words.jp/w/オーバーフロー.html
ソフトは違いますが「要素数が18000になると途中で終わっているような見た目になります」の『途中で終わる』というケースはそのものズバリ経験があります。
解析ではなく実物の3Dスキャナ点群データを処理していたのですが、極限まで微細部を取り込もうとすると途中までしかデータ処理が行われませんでした。
色々と調べた結果分かったのは、上記の『処理できる要素数に制限がある』という事実でした。
要はスキャン範囲×解像度の総数がこの想定上限を超過したため、その時点で処理が完了してしまったのです。しかしプログラム的にはその部分をエラーとして認識する仕組みがなく(要は完全な想定外)、通常に完了するような形になってしまっていました。
添付図を見ると変位量が300mm程度までは処理できているようですので、この範囲でのシミュレーション精度が要素数と共に向上しているなら、上記のようなプログラム的なオーバーフローの懸念が大だと個人的には思います。
それでなくとも、処理の負荷を上げすぎると予期せぬ挙動を起こす頻度が上がるので(これも個人的経験の範疇で申し訳ないですが)、実用上充分な精度が確認できる辺りで止めておくのがお勧めです。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (2件中 1~2件目)
ありうると思います。(Marcで起こるかは知らない)
当然差分や微分計算を伴うような逆数を使う演算はメッシュが細かいほど精度が落ちます。
例えばメッシュ距離が0に近づけば、計算が破綻するのは明らかですよね。
お礼
2020/03/23 17:41
ご回答ありがとうございます。
>> 逆数を使う演算はメッシュが細かいほど精度が落ちます。
についてもう少しご説明いただけないでしょうか?(もしくは自分で調べるので、何の理論?部分?に影響しているのか教えてほしいです。勉強不足で申し訳ありません。)
Marcで収束判定基準を「残差と変位」にしているので、変位が400mmに達していない状況で演算が終わるのがおかしいと思いました。(その他、「残差」だけや「残差"または"変位」の選択肢があります)
お礼
2020/03/26 15:28
細かくご説明いただき、本当にありがとうございます。
とても参考になりました。
知識も、経験もまだまだ未熟なので勉強しようと思います。
ありがとうございました。