OpenFOAM-8/src/thermophysicalModels/specie/thermo/thermo/thermoI.H
熱流体解析で計算が収束せずに発散した場合に起きるエラーです。
計算が発散した場合には以下のような方法で問題が解消するかを確認します。
以下の様に system/fvSolution ファイル内で定義されている各変数の緩和係数 relaxationFactors の値を小さくして問題が解消するかを確認します。
relaxationFactors{
fields{
rho 0.1;
p_rgh 0.03;
}
equations{
U 0.07;
h 0.07;
k 0.07;
epsilon 0.07;
}
}
以下の様に system/fvSolution ファイル内で定義されている solvers の設定をより安定的なものに変更します。
rho.*{
solver PCG;
preconditioner DIC;
tolerance 0;
relTol 0;
}
p{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.01;
}
p_rgh{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.01;
}
U{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
h{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
k{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
epsilon{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0.1;
}
また以下の様に system/fvSchemes ファイル内で定義されている gradSchemes と divSchemes の設定をより安定なものに変更します。
gradSchemes{
default faceLimited Gauss linear 1;
}
divSchemes{
default none;
div(phi,U) bounded Gauss upwind;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
div(phi,K) bounded Gauss upwind;
div(phi,h) bounded Gauss upwind;
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
}
ただし一般的に安定な設定はその分、計算精度や計算速度が落ちることに注意してください。
上記を行っても問題が解決しない場合は、メッシュが歪んでいる等、メッシュの品質に問題がある可能性があります。checkMesh コマンドでメッシュの品質を確認し、問題がある場合はメッシュ作成の設定を見直してメッシュを作成し直します。