一个关于 Axisymmetric Subsonic Jet 的问题
-
有个关于rhoPimpleFoam求解亚音速射流的问题求助CFDer。我刚入手OpenFoam,最近在做一个亚音速射流的问题(出口流速大概在165m/s),采用轴对称方法计算(旋转角度1deg,采用wedge边界条件),需要给定总压力入口边界条件(totalPressure)。参考实验来自NASA官网:https://turbmodels.larc.nasa.gov/jetsubsonic_val.html
算例的网格和边界如下:
我刚开始采用稳态的求解可压缩问题的rhoSimpleFoam求解器,射流的速度云图结果还不错,如下图:
现在我想采用瞬态的rhoPimpleFoam求解器,网格和边界条件设置均相同,但是得到的速度云图看起来是错误的,没有出现明显的射流界面,时间步1e-6s计算稳定,在0.85s时的结果如下图:
想请问CFDer有没有做过类似计算,发生这个错误的可能原因有些什么呢?我想多尝试尝试改一下,十分感谢!!! -
@东岳 网格数是4520,目前用的是NASA提供的比较粗糙的网格,如下图:
不过刚刚Umean的结果是在已有结果的基础上,加上Umean后跑了0.05s的结果,这样的结果可能是不正确的,因为没有统计之前时间的速度。我刚刚重新从0开始统计Umean的结果,晚些时候我把结果发到论坛上给您看一下。
附:关于Umean的监测我采用的是知乎上的一个方法:https://zhuanlan.zhihu.com/p/52667661
在controlDict里加入的代码如下:functions { fieldAverage1 { type fieldAverage; functionObjectLibs ( "libfieldFunctionObjects.so" ); enabled true; outputControl outputTime; fields ( U { mean on; prime2Mean on; base time; } ); } }
在中文网上也看到了关于这个问题的讨论:https://www.cfd-china.com/topic/1453/想在程序中调用umean这个值-应该如何实现
我还想问一下李老师,这个Umean是单个时间步内的所有迭代的平均,还是计算从0s开始到当前时间的一个总的速度平均?如果是后者的话,采用瞬态方法时,如果刚开始计算得到的速度值变化较大的话,对Umean的影响不会很大吗? -
@东岳 太感谢了,李老师,
,文件稍微有点大,我就用坚果云了,这是坚果云链接:
https://www.jianguoyun.com/p/DUyH968Qr-LHBxjQ5aYD
https://www.jianguoyun.com/p/DRvCxh0Qr-LHBxjV5aYD -
@东岳 很不好意思李老师,这个算例是我和另一个同学一块讨论着来做的,之前上传的是我俩用相同网格,分别用rhoSimpleFoam和rhoPimpleFoam来计算的结果,所以边界命名不一样。
晚上我重新用自己的命名方式,用两种求解器重新跑了一遍,网格图如下:
rhoSimpleFoam(10w步迭代结果)和rhoPimpleFoam(0.08s时刻结果)结果分别如下图2和图3所示:
这是我重新跑了一遍的算例文件,存在了坚果云中。再次感谢!
https://www.jianguoyun.com/p/DdnpeEMQ1IPKCBiFqqcD
https://www.jianguoyun.com/p/DdA5ZSwQ1IPKCBiGqqcD -
@King_RVM rhoSimpleFoam和参考结果相比怎么样?我一般用rhoPimpleFoam和unsteady RANS都给很大的时间步让它快速到稳态解,最终的这个稳态解和rhoSimpleFoam类似。你这个不知道从方法来说有没有问题,比如说每一个时间步收敛了么?unsteady RANS每个时间步需要不少的迭代步,你用的是多少?
你可以用flowRatePatch测试一下入口和出口的流量是否还守恒,rhoSimpleFoam应该没有问题。rhoPimpleFoam我的经验是每一个时间步都是守恒的,如果不守恒那说明有问题。
-
@cccrrryyy 谢谢您的回复。rhoSimpleFoam和实验结果对比还可以,我刚处理了一下这个粗糙网格的结果,图1是沿轴向的速度U分布对比,图2和图3是数值与试验的速度云图对比(图2是U的对比,图3是Umean的对比),可以看出Umean的云图更为光滑一些,图2速度U的云图能看到出口处速度不光滑有波动,现在我们怀疑是出口处壁面边界引起的非物理的泻涡造成的,但是图3Umean的出口处速度云图就很光滑:
对于您的第二个问题,因为我刚开始学OpenFoam,还没找到内迭代步在哪儿里设置,这是我的controlDict文件,里面没有内迭代步的设置,这个我再找找资料看看怎么设置。/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application rhoPimpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 2.0; deltaT 1e-6; writeControl adjustableRunTime; writeInterval 0.005; purgeWrite 0; writeFormat ascii; writePrecision 8; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; functions { #includeFunc MachNo #includeFunc residuals #includeFunc probes #includeFunc R } functions { fieldAverage1 { type fieldAverage; functionObjectLibs ( "libfieldFunctionObjects.so" ); enabled true; outputControl outputTime; fields ( U { mean on; prime2Mean on; base time; } ); } } // ************************************************************************* //
第三个问题我也尝试一下,然后再来讨论。
-
@cccrrryyy 你好,关于第二个建议,我再fvSolution文件中设置了最大迭代步maxIter为100,计算结果没有什么变化,fvSolution中设置的代码如下:
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; smoother GaussSeidel; tolerance 1e-6; relTol 0.01; maxIter 100; } pFinal { $p; relTol 0; } "(rho|U|k|omega|e)" { solver PBiCGStab; preconditioner DILU; tolerance 1e-6; relTol 0.1; maxIter 100; } "(rho|U|k|omega|e)Final" { $U; relTol 0; } }
关于第三个建议,我监测了3个入口和1个出口的flowRatePatch数据,两者的总和基本上保持为0,流量也是守恒的。
-
@东岳 李老师,我做了一个rhoSimpleFoam 10w步的结果与您提供的13000的结果的速度云图对比,因为没监测Ux(轴向速度),目前只能提供一个瞬时的速度Umagnitude的对比结果,如下图:
13000这个结果有所改善,但同样在大概2倍的出口半径处仍然存在小的波动。李老师可否提供postProcessing中的监测点数据,这样我可以画个沿轴向的速度曲线来对比。下图是之前我算rhoSimpleFoam的速度曲线,也可以看出在射流出口处速度波动较大,和云图表现出的结果是一致(我们猜测会不会是射流喷嘴处壁面的影响)。
-
@cccrrryyy 不好意思,我刚开始学还没弄明白这些值。pimple里这个的设置如下:
SIMPLE { residualControl { p 1e-4; U 1e-4; "(k|omega|e)" 1e-4; } nNonOrthogonalCorrectors 0; pMinFactor 0.1; pMaxFactor 2; } PIMPLE { nCorrectors 2; nNonOrthogonalCorrectors 1; nOuterCorrectors 1; pMinFactor 0.1; pMaxFactor 2; } relaxationFactors { equations { ".*" 1; } }
nOuterCorrectors默认的是1,这个算例是我根据OpenFoam自带的tutorials-rhoPimpleFoam 中的aerofoilNACA0012的算例修改的,因此这个值就没变。
-