こんにちは。
本件解決には至っていませんが、こちらでも同じような内容で回答していますのでご参考ください。
system/controlDictにfieldMinMaxを追加すると計算ログに物理量の最大最小が表示されます。
また、結果の出力を細かくしてParaViewなどで確認する良いです。
deltaT 1;
writeControl adjustableRunTime;//timeStep; // 定常解だけ見る→timeStep 時間的変化見る→adjustableRunTime
...(省略)...
functions
{
...(省略)...
fieldMinMax
{
type fieldMinMax;
libs (fieldFunctionObjects );
mode magnitude;
fields ( U p T ); // Optional entries (runtime modifiable)
location yes;
writePrecision 8;
writeToFile yes;
useUserTime yes;
region region0;
enabled yes;
log yes;
timeStart 0;
timeEnd 8000;
executeControl timeStep;
executeInterval 1;
writeControl timeStep;//adjustableRunTime;
writeInterval 1;
}
}
以下のように計算ログに最大最小の値とその座標が出力されます。
fieldMinMax fieldMinMax write:
min(T) = 293.15 in cell 27586 at location (6.886871883 0.8540729768 0.9553099113)
max(T) = 27697.96937 in cell 391112 at location (99.97038057 1.147703168 1.179730991)
min(mag(U)) = 0 in cell 0 at location (0.05333333333 0.946529573 0.00431657912)
max(mag(U)) = 6619.352917 in cell 396103 at location (99.92039853 1.267453711 1.347917411)
min(p) = -19.57390045 in cell 210 at location (0.04618666157 1.000001032 1.997838205)
max(p) = 42.26008458 in cell 375457 at location (99.98351046 0.7807804861 1.787717661)
Time = 2
1step目から計算が破綻する予兆が見受けられます。
ですので、すべて計算させてから判断するより、計算途中でログを確認して問題ないかを見た方が良いです。
上記のログからParaViewで確認すると、流入口で流速が不安定な気がします。
テトラメッシュなので、どうしても発散しやすいとは思いますが、
・入り口にも境界層を入れる(メッシュ変更)
・緩和係数を小さくする
・離散化スキームを安定なものにする
などは思いつきます。
六面体メッシュならbuoyantSimpleFoamで行ったものがありますのでご参考ください。
計算の発散とは違いますが、ブシネスク近似は温度差がつくと精度悪い結果になりかねません。
あまり温度変化があるようでしたら、buoyantSimpleFoamに変えると良いかもしれません。
↓ブシネスク近似の参考
2025年10月24日金曜日 9:53:30 UTC+9 Ryoga: