!ZERO 未定義時の輻射境界条件の動作改善
概要
輻射境界条件(!RADIATE, !SRADIATE)はステファン・ボルツマンの法則 q_r = \sigma\varepsilon(T^4 - T_\infty^4) に基づき、温度を絶対温度で計算する。この絶対温度への変換にはメッシュファイルの !ZERO キーワード(絶対零度の値)が使用されるが、!ZERO が省略された場合のデフォルト値は 0.0 である。
このため、セ氏温度で入力ファイルを記述しているユーザーが !ZERO を定義し忘れた場合、輻射による放熱が大幅に過小評価され、誤った温度分布が得られる。この問題はエラーや警告なく実行が完了するため、ユーザーが誤りに気づきにくい。
背景
#723 (closed) にて、WELSIM で生成されたメッシュファイル(!ZERO なし)を用いた輻射解析で、外面温度の期待値が 107°C のところ 264°C が得られるという報告があった。メッシュファイルに !ZERO -273.15 を追加することで正しい結果が得られることを確認した。
FrontISTR の既存テストケース(tests/analysis/heat/exR/)はすべて !ZERO -273.16 を明示的に定義しているため、この問題はこれまで検出されていなかった。
改善案
以下のいずれか、または組み合わせを検討する。
- 警告メッセージの追加:
!RADIATEまたは!SRADIATEが使用されているにもかかわらず!ZEROが未定義(デフォルト0.0)の場合、実行時に警告メッセージを出力する - デフォルト値の変更:
zero_tempのデフォルトを-273.15に変更する(後方互換性の影響を要検討) - ドキュメントの改善:
!SRADIATE/!RADIATEのドキュメントに!ZEROの設定が必要である旨を明記する