!ZERO 省略時の絶対零度をセ氏入力前提の -273.15 に変更し、未定義を警告する

概要

輻射境界条件は温度を絶対温度に換算して計算し、換算に使う絶対零度をメッシュファイルの !ZERO から取る。 !ZERO を省略したときの既定値 0.0 は「入力温度はすでに絶対温度である」という仮定であり、 セ氏温度で書かれたモデルのメッシュファイルに !ZERO がないと、輻射熱伝達係数が室温付近で2桁小さく 評価される。それでもエラーも警告もなく正常終了する。#723 (closed) で報告された事例がこれである。

!ZERO はメッシュファイルのキーワードであるのに対し、!RADIATE と !SRADIATE は制御ファイルの キーワードであるため、境界条件を正しく書いていても設定が漏れる。既定値をセ氏入力を前提とした -273.15 に変え、!ZERO が未定義のときは既定値を採用した旨を警告することにした。 ケルビン温度で入力し既定値に頼っていたモデルは、!ZERO に 0.0 を明示しない限り結果が変わるため、 警告文にその指示を含めてある。

あわせて、輻射境界条件を含む熱伝導解析では採用した絶対零度を FSTR.msg に出力する。 分割メッシュを使う場合、上の警告は hecmw_part1 の実行時にしか出ず fistr1 の実行ログには残らないためである。

妥当性は、厚さ 0.025 m、熱伝導率 0.072 W/(m K)、加熱面 377 度、放熱面に放射率 0.9・雰囲気 25 度の 輻射という1次元モデルで確認した。

条件 放熱面温度 理論解
修正前のバイナリ、!ZERO なし 275.27 275.27
修正後、!ZERO なし 114.96 114.97
修正後、!ZERO に -273.15 を明示 114.96 114.97

既存の輻射解析のテストはすべて !ZERO を明示しているため、既定値の変更による結果の変化はない。

Close #744 (closed)

変更内容

コミット 内容
c8d2d327 Use Celsius as the default temperature scale for !ZERO setup_zero の既定値を -273.15 にし、!ZERO 未定義時に警告を出す
25b93eba Log the absolute zero used by radiation boundary conditions 輻射境界条件があるとき、採用した絶対零度を FSTR.msg に出力する
73296b83 Add a heat radiation test without !ZERO in the mesh exR/R361 から !ZERO を除いたケースを exR2 として追加する

Merge request reports

Loading
Loading