以前OpenFOAMでfluent用のメッシュをインポートする方法を
以下で紹介しました。
作成した条件でテトラメッシュを解析するとANSYS fluentと
計算結果が異なったり、発散して計算できなかったりしました。
そこで、OpenFOAMでテトラメッシュを使用しても
fluentと計算結果がかなり近くなった方法を紹介します。
OpenFOAM-v2006、simpleFoam 乱流モデルk-εモデルを想定
(1)systemフォルダにあるfvSchemesを編集
//////////////////////////////////////////////////////////////////////////////////
FoamFile{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
ddtSchemes{
default steadyState;
}
gradSchemes{
default faceMDLimited Gauss linear 0.333;
}
divSchemes{
default none;
div(phi,U) bounded Gauss linearUpwindV grad(U);
div((nuEff*dev2(T(grad(U))))) Gauss linear;
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
}
laplacianSchemes{
default Gauss linear limited 0.333;
}
interpolationSchemes{
default linear;
}
snGradSchemes{
default limited 0.333;
}
fluxRequired{
default no;
pcorr ;
p;
}
//////////////////////////////////////////////////////////////////////////////////
(1)systemフォルダにあるfvSolutionを編集
FoamFile{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
solvers{
p{
solver GAMG;
tolerance 1e-06;
relTol 0.01;
smoother FDIC;
nPreSweeps 1;
nPostSweeps 2;
nFinestSweeps 2;
cacheAgglomeration on;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 1000;
mergeLevels 1;
}
U{
type coupled;
solver PBiCCCG;
preconditioner DILU;
tolerance (1e-6 1e-6 1e-6);
relTol (0.01 0.01 0.01);
}
k{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0.01;
}
epsilon{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0.01;
}
}
SIMPLE{
nNonOrthogonalCorrectors 3;
convergence 1e-5;
}
potentialFlow
{
nNonOrthogonalCorrectors 10;
}
relaxationFactors{
fields{
p 0.2;
}
equations{
U 0.5;
k 0.5;
epsilon 0.5;
}
}
cache
{
grad(U);
}
//////////////////////////////////////////////////////////////////////////////////
離散化スキーム、代数方程式ソルバーの設定を変更したことになります。
離散化スキーム、代数方程式ソルバーについては
書籍「OpenFOMAによる熱移動と流れの数値解析」第4章がわかりやすかったです。
公的機関でANSYSなどメッシュが作成できる流体解析ソフト
参考元となった海外サイト
Convergence problem with tetrahedral grids -- CFD Online Discussion Forums