ありがとうございます。
エラーの解決は至っていませんが、計算がおかしくなっている箇所はわかりました。
system/controlDictでエラーが起こる場合はひとまず細かく出力して特定する方が良いかと思います。
writeControl adjustableRunTime;
// writeInterval 10;
writeInterval 0.1;
function objectに以下を追加してlogで最大の流速を確認すると良いかと思います。
fieldMinMax1
{
type fieldMinMax;
libs (fieldFunctionObjects ); // Mandatory entries (unmodifiable)// Mandatory entries (runtime modifiable)
mode magnitude;
fields ( U p ); // 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;
}
ターミナルのlogを確認
fieldMinMax fieldMinMax1 write:
min(mag(U)) = 0 in cell 600 at location (1.02038 0.5 -0.634083)
max(mag(U)) = 70.7308 in cell 15251 at location (1.97998 0.0399999 0.120304)
min(p) = -4.41565 in cell 122528 at location (-2.785 0.115 0.45)
max(p) = 5868.81 in cell 310 at location (1.42 0 -0.65)
面積が1m×1m程度、流量が0.000348m3/sなのでせいぜい平均して0.000348m/s程度なはずがUの最大値が70m/sになっています。
max(mag(U)) の座標からParaViewで確認
また、以下のようにflowRateInletVelocityにしてマイナスの数値を設定して流出させているということですが、流出の場合は、flowRateOutletVelocityにして正の値を設定する方が直感的かと思います。
intake_channel_outlet
{
type flowRateInletVelocity;
volumetricFlowRate table
(
(0 -0.000348)
あと気になったのは液相がないのに境界条件で液相ありの設定をしている点です。
alpha.water.gz
intake_channel_outlet
{
type fixedValue;
value uniform 1;
}
発散しているのは0.6秒ですが、logを見ていると数値的には0.1~0.2秒くらいから発散しそうな気配があります。
赤丸を付けた箇所の境界条件を見直してみると良いかと思います。
よろしくお願いいたします。