请教各位!!李老师说,扩散项增加对角占优,有助于收敛。那如果雷诺数给极低,理论上会出现什么问题吗?
我使用pimpleFoam+动网格计算一竖排圆柱(直径为d,间距为10d)从静止开始加速平动,雷诺数给1e-3(基于d)。5个圆柱及以下,计算正常;9个圆柱及以上,计算出现问题(增大雷诺数至1e-2则可正常计算)。相邻圆柱的网格是对称的,增加圆柱个数其实单纯增加网格量而已。
症状:
- 圆柱数量多的情况,每次PIMPLE迭代(nOuterCorrectors)的压力方程初始残差降不下来也不发散
Courant Number mean: 2.398253992e-06 max: 0.0215123576
deltaT = 0.04
Time = 6.7
PIMPLE: iteration 1
DICPCG: Solving for pcorr, Initial residual = 1, Final residual = 0.09682197649, No Iterations 82
DICPCG: Solving for pcorr, Initial residual = 0.09688756857, Final residual = 0.00927208952, No Iterations 82
DICPCG: Solving for pcorr, Initial residual = 0.01741032791, Final residual = 0.00171820424, No Iterations 86
DICPCG: Solving for pcorr, Initial residual = 0.002315321063, Final residual = 0.0002293036835, No Iterations 341
DICPCG: Solving for pcorr, Initial residual = 0.0005365215345, Final residual = 9.975987647e-10, No Iterations 791
time step continuity errors : sum local = 1.735383521e-22, global = 6.725543895e-25, cumulative = 3.656703828e-10
GAMG: Solving for p, Initial residual = 0.9443291304, Final residual = 0.002194485674, No Iterations 3
GAMG: Solving for p, Initial residual = 0.001947671658, Final residual = 1.846802379e-05, No Iterations 35
GAMG: Solving for p, Initial residual = 7.588154638e-05, Final residual = 7.535974383e-07, No Iterations 40
GAMG: Solving for p, Initial residual = 4.120836164e-06, Final residual = 4.025364261e-08, No Iterations 50
GAMG: Solving for p, Initial residual = 7.005626725e-07, Final residual = 6.534878288e-09, No Iterations 45
time step continuity errors : sum local = 6.700624174e-17, global = 1.044778689e-17, cumulative = 3.656703932e-10
GAMG: Solving for p, Initial residual = 0.955093981, Final residual = 0.002181673685, No Iterations 3
GAMG: Solving for p, Initial residual = 0.001764171308, Final residual = 1.648106932e-05, No Iterations 35
GAMG: Solving for p, Initial residual = 7.35621349e-05, Final residual = 7.223433176e-07, No Iterations 42
GAMG: Solving for p, Initial residual = 3.059263044e-06, Final residual = 3.023418303e-08, No Iterations 62
GAMG: Solving for p, Initial residual = 3.427802208e-07, Final residual = 9.5003603e-10, No Iterations 84
time step continuity errors : sum local = 9.859629733e-18, global = -1.244226379e-18, cumulative = 3.65670392e-10
PIMPLE: iteration 2
...
PIMPLE: iteration 29
GAMG: Solving for p, Initial residual = 0.9411617368, Final residual = 0.00215235933, No Iterations 3
GAMG: Solving for p, Initial residual = 0.001918610458, Final residual = 1.812341162e-05, No Iterations 35
GAMG: Solving for p, Initial residual = 7.116434841e-05, Final residual = 6.94389095e-07, No Iterations 43
GAMG: Solving for p, Initial residual = 3.125063719e-06, Final residual = 3.121354786e-08, No Iterations 60
GAMG: Solving for p, Initial residual = 3.47115616e-07, Final residual = 3.269278386e-09, No Iterations 53
time step continuity errors : sum local = 3.261140983e-17, global = 4.05973866e-18, cumulative = 3.656704773e-10
GAMG: Solving for p, Initial residual = 0.9520350913, Final residual = 0.00217738456, No Iterations 3
GAMG: Solving for p, Initial residual = 0.001759034352, Final residual = 1.660230344e-05, No Iterations 35
GAMG: Solving for p, Initial residual = 7.423394075e-05, Final residual = 7.303987078e-07, No Iterations 42
GAMG: Solving for p, Initial residual = 3.089411582e-06, Final residual = 3.055292623e-08, No Iterations 62
GAMG: Solving for p, Initial residual = 3.343358255e-07, Final residual = 9.575916541e-10, No Iterations 84
time step continuity errors : sum local = 9.662150084e-18, global = -1.230822196e-18, cumulative = 3.65670476e-10
- 流场明显发散了
分析:
- 试过修改离散格式,问题可能不在于此。时间项改用backward不影响;对流项采用linear或linearUpwind没有区别(毕竟对流项太弱);扩散项用的corrected;梯度项用linear或leastSquares(或加上限制器)都不影响其发散。
ddtSchemes
{
default Euler;
}
gradSchemes
{
default cellMDLimited leastSquares 0.5;
}
divSchemes
{
default none;
div(phi,U) bounded Gauss linearUpwind grad(U);
div((nuEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
- 试过修改计算域及边界条件,问题可能不在于此。计算域给10000d或更大,至少在初始运动阶段,该域是足够大的,但是都会很快发散。边界条件可动的地方也不多,把壁面p从零梯度改为fixedFluxPressure没用
# U
"cylinder.*"
{
type movingWallVelocity;
value uniform (0 0 0);
}
"(up|bottom|inlet|outlet)"
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
# p
"cylinder.*"
{
type fixedFluxPressure;
//type zeroGradient;
value uniform 0;
}
"(up|bottom|inlet|outlet)"
{
type outletInlet;
outletValue uniform 0;
}
- 时间步长,迭代次数精度等,都修改过,也不影响其最终发散
solvers
{
p
{
solver GAMG;
smoother GaussSeidel;
tolerance 1e-09;
relTol 0.1;
}
pFinal
{
solver GAMG;
smoother GaussSeidel;
tolerance 1e-09;
relTol 0;
}
pcorr
{
solver PCG;
smoother GaussSeidel;
tolerance 1e-09;
relTol 0.1;
preconditioner DIC;
}
pcorrFinal
{
solver PCG;
smoother GaussSeidel;
tolerance 1e-09;
relTol 0;
preconditioner DIC;
}
}
PIMPLE
{
momentumPredictor off;
correctPhi yes;
nOuterCorrectors 500;
nCorrectors 2;
nNonOrthogonalCorrectors 4;
ddtCorr true;
residualControl
{
p
{
tolerance 1e-08;
relTol 0;
}
}
}
relaxationFactors
{
equations
{
".*" 1;
}
}
- 网格。从流场上看,跟网格关系很大。但按理说低雷诺数计算对网格并不敏感,而且网格质量不差(平均non-orthogonality只6.5),网格非正交修正也都收敛了。雷诺数高一点能算,少几个圆柱也能算。
这里面有没有隐含着什么低雷诺数计算的理论缺陷呢?