pimple算法非定常计算时残差持续增加最终发散如何解决?
-
最近使用rhoPimpleFoam算一个翼型的气动特性,总是在算很长时间后突然发散,发现p和e的残差在不断增加最后导致发散
我计算时取的时间步长基本让最大库郎数稳定在80以下,pimple设置如下:73 PIMPLE 74 { 75 momentumPredictor yes; 76 nOuterCorrectors 15; 77 nCorrectors 4; 78 nNonOrthogonalCorrectors 1; 79 rhoMin 0.1; 80 rhoMax 5.0; 81 pMinFactor 0.5; 82 pMaxFactor 2.0; 83 84 }
空间和时间离散格式如下
18 ddtSchemes 19 { 20 default backward; 21 } 22 23 gradSchemes 24 { 25 default Gauss linear; 26 limited cellLimited Gauss linear 1; 27 grad(U) $limited; 28 grad(k) $limited; 29 grad(kU) $limited; 30 grad(omega) $limited; 31 grad(omegaU) $limited; 32 } 33 34 divSchemes 35 { 36 default none; 37 div(phi,U) Gauss linearUpwind limited; 38 39 turbulence Gauss linearUpwind limited; 40 energy Gauss linearUpwind limited; 41 42 div(phi,k) $turbulence; 43 div(phi,kU) $turbulence; 44 div(phi,omega) $turbulence; 45 div(phi,omegaU) $turbulence; 46 47 div(phi,e) $energy; 48 div(phi,h) $energy; 49 div(phi,K) $energy; 50 div(phi,Ekp) $energy; 51 52 div(phiv,p) Gauss upwind; 53 div((phi|interpolate(rho)),p) Gauss upwind; 54 55 div(phi,ReThetat) $turbulence; 56 div(phi,gammaInt) $turbulence; 57 58 div(B) Gauss linear; 59 div(meshPhi,p) Gauss linear; 60 61 div((nuEff*dev2(T(grad(U))))) Gauss linear; 62 div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; 63 div(nonlinearStress) Gauss linear; 64 }
网格是blockMesh做的,比较简单,因为要保证边界层密度所以纵横比比较大。请问导致发散的主要原因是什么?什么方法可以改善?我个人不希望再降低时间步长,因为目前已经很小了,采用pimple算法也是由于它能够在较大的库郎数下计算。谢谢各位!~