求助: SonicFoam求解二维叶栅时无法收敛(求解文件可下载)
-
大家好,最近一直在利用OpenFOAM的SonicFoam求解二维叶栅的跨声速流动,由于缺乏计算经验,计算一直无法收敛,现在通过这个帖子向大家求教,恳求大家帮忙指点。原文件如下:https://pan.baidu.com/s/1i_9ZtTNnw_uyRIB9WqPHeg 提取码:3vx0
我选用的计算对象是rotor67的70%截面,预计进口Ma数为1.2,进出口边界条件如图所示,进口给定总温总压以及速度方向的进口条件,出口给定背压。因为一开始怕计算发散,采用先给定小进口总压,然后逐步抬高,进口总压为1.2E5时的进口速度大约是180m/s。
进出口边界示意图网格采用ICEM生成,yplus是在来流速度400左右确定为30,,第一层网格大约为0.03mm。
该网格可以在rhoCentralFoam求解器中采用速度入口条件可以收敛,所以网格和边界条件这一块应该没有什么问题。原先选用其结果作为初场,可是计算也是发散。
我这边一直怀疑是自己的边界和求解控制那一块有问题,但是一直没能找到问题解决办法,恳请大家帮忙提些建议。
这里给出我的压力、温度、速度条件
pOut 1e5; pAll 1.2e5; INLET { type totalPressure; psi thermo:psi; gamma 1.4; p0 uniform $pAll; value uniform $pOut; } OUTLET { type waveTransmissive; field p; psi thermo:psi; gamma 1.4; fieldInf 100000; lInf 0.3; value uniform 100000; } PER1 { type cyclicAMI; } PER2 { type cyclicAMI; } BLADE { type zeroGradient; } Tinlet INLET { type totalTemperature; gamma 1.4; psi thermo:psi; T0 uniform 304.975; value uniform 288.15; } OUTLET { type inletOutlet; inletValue uniform $Tinlet; value $inletValue; } PER1 { type cyclicAMI; } PER2 { type cyclicAMI; } BLADE { type zeroGradient; } boundaryField { INLET { type pressureDirectedInletVelocity; inletDirection uniform (0.5 0.86605 0); //angle=60 value uniform (90 159.35 0); } OUTLET { type inletOutlet; inletValue uniform $Uinlet; value uniform $Uinlet; } PER1 { type cyclicAMI; } PER2 { type cyclicAMI; } BLADE { type noSlip; }
这里给出fvSolution和fvSchemes。
solvers { "rho.*" { solver diagonal; } "p.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-08; relTol 0; } "(U|e|R).*" { $p; tolerance 1e-05; } "(k|omega).*" { $p; tolerance 1e-08; } } PIMPLE { nOuterCorrectors 2; nCorrectors 1; nNonOrthogonalCorrectors 2; } fieldBounds { p 1000 1e6; T 100 3000; U 1000; } relaxationFactors { fields { p 0.7; rho 0.01; } equations { p 0.7; U 0.3; "(e|h|k|epsilon|omega)" 0.2; } } ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinearV 1; div(phi,e) Gauss limitedLinear 1; div(phid,p) Gauss limitedLinear 1; div(phi,K) Gauss limitedLinear 1; div(phiv,p) Gauss limitedLinear 1; div(phi,k) Gauss upwind; //div(phi,epsilon) Gauss upwind; //div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; div(phi,omega) Gauss upwind; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; div((muEff*dev2(grad(U).T()))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } wallDist { method meshWave; //nRequired false; }
-
速度角度和网格不成直线,对流项格式不好设置。不太清楚你这个结果应该是什么样,最后我这个稳定到这样了。因为我重新画了网格,你用你的网格试试下面的fvScheme,我感觉可能是格式的问题,因为看起来是震荡。
还得进一步研究一下,不能用这么迎风的格式,你用稳态求解器试过没
ddtSchemes { default Euler; } gradSchemes { default cellLimited leastSquares 01; } divSchemes { default none; div(phi,U) Gauss upwind; div(phi,e) Gauss upwind; div(phid,p) Gauss upwind; div(phi,K) Gauss upwind; div(phiv,p) Gauss upwind; //div(phi,U) Gauss limitedLinearV 1; //div(phi,e) Gauss limitedLinear 1; //div(phid,p) Gauss limitedLinear 1; //div(phi,K) Gauss limitedLinear 1; //div(phiv,p) Gauss limitedLinear 1; div(phi,k) Gauss upwind; div(phi,omega) Gauss upwind; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear limited corrected 0.5; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } wallDist { method meshWave; }