各位好,我最近用OpenFOAM也在做这方面的模拟,现在使用SHM划分网格遇到了一些问题,主要是网格质量、非正交性、凹度和负体积网格方面的,能否交流一下
Caijinjin
帖子
-
球形颗粒接触点的处理方法求助 -
群体平衡方程中新增子液滴分布函数,关于韦伯数的程序编译问题@李东岳
李老师,这个函数里面,d,也就是xk,在这段程序里面是一个未知的自变量,只有在最后计算子液滴分布的时候才给定,我定义的分配函数里面也有这个定义:
这里定义成dimensionedScalar就没问题,所以可能不是d的问题了 -
群体平衡方程中新增子液滴分布函数,关于韦伯数的程序编译问题李老师好,最终计算子液滴分布的结果是一个标量,那么在计算calcWe时返回场的话还能对应的使用吗?还有韦伯数是一个无量纲的数,如果是场的话这里应该选择是那种类型的场呢?
-
群体平衡方程中新增子液滴分布函数,关于韦伯数的程序编译问题各位大佬好,目前遇到一个问题。
在群体平衡方程中新增子液滴分布函数,程序中需要用到韦伯数,韦伯数的计算公式是:
公式中d是母液滴的直径,把它写到子液滴分布程序中换算成了关于母液滴体积的函数,如下:
遇到的问题是编译过程中出现下面的问题:
请问有没有大佬了解这方面的问题,这是量纲或者场没对应上吗? -
集群上并行测试OpenFOAM,并行效率并没有比单节点提升@李东岳 老师,是这样的,这种现象在单个节点跑案例的时候是没有的,CPU是接近满负荷在运算的,但是一到多个节点并行就出现。
现在我们换了IB交换机之后多节点还没跑起来过。。。 -
集群上并行测试OpenFOAM,并行效率并没有比单节点提升@李东岳 李老师,我们组集群是新买的,应该不太可能是被黑了,除非是大厂他们给加了限制。现在我导给换了100G的IB交换机,就是运行案例的时候,它虽然显示是在run的,但是log文件里面没有实际的计算结果。我看了调度系统的日志说是:
Open MPI accepted a TCP connection from what appears to be an another Open MPI process but cannot find a corresponding process entry for that peer.
暂时还在寻找原因。 -
气液搅拌釜顶部出口速度异常,导致epsilon等结果发散@李东岳 好的,我先尝试着修改下再去跑跑看
-
气液搅拌釜顶部出口速度异常,导致epsilon等结果发散@李东岳李老师,最初使用过snappyHexMesh划分过结构化网格,模拟出错之后就改用icem非结构化网格来画稍微粗糙一点的网格去调试了
-
气液搅拌釜顶部出口速度异常,导致epsilon等结果发散搅拌釜中气液两相模拟,釜中搅拌桨底部设置了两个圆形气体入口,气速最大0.3 m/s,釜内为水,顶部出口。我用reactingTwoPhaseEulerFoam模拟的时候最终都会出现下图中的结果,顶部出口有个位置的速度非常大,超过10 m/s,最终导致epsilon发散,气泡粒径出现负值。
请问一下各位有没有遇到过类似的情况,出口的边界条件类型,离散格式都修改过还是会出现一样的情况,而且搅拌釜顶部流出一段空气之后,这块区域还会变大。 -
集群上并行测试OpenFOAM,并行效率并没有比单节点提升@李东岳 在 集群上并行测试OpenFOAM,并行效率并没有比单节点提升 中说:
-genv FI_PROVIDER tcp
你这个去掉不能跑的话。你如何确定走的是infiniband,而不是以太网模式。我们这面跑openfoam不需要这个参数。我们之前测试也出现过你这种情况。后来我们换交换机硬件了。但目前我还不确定现在我们这5节点能到什么样,得下周能出个测试结果。另外,openfoam离散设置差异(比如GAMG那个),我个人感觉不会引起特别大的差异。不过你可以实测看看,我也不100%确定@xpqiu 这位大佬之前好像测试过2048个核心
老师,想问一下,用openmpi在自己组里面的集群上用pbs跨节点并行(10g以太网交换机)命令用的mpirun --mca btl_tcp_if_include <ip地址> -np reactingTwoPhaseEulerFoam -parallel,运行的时候发现计算的节点上cpu的用户进程占比us只有50-60%,系统进程占比sy有40-50%,这个问题有没有什么好的解决办法?
-
跨节点运行openfoam慢你好,想问你一下,这个跨节点运算速度慢的问题有解决吗?我这边自己的集群也有这个问题,目前还在找原因中,集群centos7,openfoam运行前会有环境变量设置的脚本(gcc编译,openmpi并行),openfoam和openmpi等软件都安装在共享文件夹中。我这边的测试案例结果如下:
-
管式填充床中两相流的模拟中,循环边界压力梯度、分散相含率运算出错的问题@李东岳 好的,李老师,我去调试看看
-
管式填充床中两相流的模拟中,循环边界压力梯度、分散相含率运算出错的问题@李东岳
单相流我还没尝试过,之前用过空的圆管做过一样的案例,问题都解决了。
现在我这边入口fixedValue,mapped边界条件都能是正常运行,就cyclicAMI出现问题,所以我打算先看看mapped的结果。 -
管式填充床中两相流的模拟中,循环边界压力梯度、分散相含率运算出错的问题最近在做管式填充床中两相流动的模拟,采用循环边界cyclicAMI达到缩短管长,减少网格的目的。网格使用snappyHexMesh画完后没有问题,动力源项给的是连续项平均速度Ubar,为0.03m/s,填充床几何为
运算时出现如下结果:
主要就是动力源计算的压力梯度一直在正负之间反复跳动,且数值非常大,压力P_rgh的迭代次数会超限。运算一段时间后会直接导致求解的相分数远远超出0-1的范围,如下图所示:
想请教一下对这种循环边界熟悉的老师同学,能够解答一下我这些问题。
另外附上我的fvSolution:solvers { "alpha.*" { nAlphaCorr 1; nAlphaSubCycles 3; implicitPhasePressure yes; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-8; relTol 0; minIter 1; } p_rgh { solver PCG; preconditioner FDIC; tolerance 1e-6; relTol 0.01; } p_rghFinal { $p_rgh; tolerance 1e-6; relTol 0; } "U." { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } "(e|h).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1; relTol 0; minIter 0; maxIter 0; } "(k|epsilon|omega).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } } PIMPLE { nOuterCorrectors 3; nCorrectors 2; nNonOrthogonalCorrectors 1; pRefPoint (0.10399 0 0); pRefValue 101325; } relaxationFactors { equations { ".*" 0.7; } }
fvSchemes:
ddtSchemes { default Euler; } gradSchemes { default Gauss linear; limited cellLimited Gauss linear 1; } divSchemes { default none; "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*\)" Gauss vanLeer; "div\(alphaRhoPhi.*,U.*\)" Gauss linearUpwind limited; "div\(phi.*,U.*\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited; "div\(alphaPhi.*,f.*\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited; "div\(alphaPhi.*,p\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,\(p\|thermo:rho.*\)\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited; "div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; } wallDist { method meshWave; nRequired yes; }
-
计算出现负相率和负湍动能@cyberk 抱歉,这个问题我没有遇到过,但我看了你之前用ICEM画的网格,这个六叶Ruston桨的搅拌槽的网格不太复杂的呀,这个你可以试试只画1/6个区域,然后对称过去,画完整体之后再去openfoam中用topoSet划分搅拌的区域
-
计算出现负相率和负湍动能@cyberk 我这边是因为缺少了createBaffles字典,如果案例的几何边界中存在零厚度面就需要对其进行设置,我这边的搅拌釜的搅拌桨就是零厚度面
-
关于multiphaseEulerFoam运算分散相体积分数问题@bestucan 谢谢老师,这个问题我再去认真了解一下并尝试尝试。
-
关于multiphaseEulerFoam运算分散相体积分数问题@caijinjin 老师,这是我的离散格式和求解器设置
ddtSchemes { default Euler; } gradSchemes { default Gauss linear; limited cellLimited Gauss linear 1; } divSchemes { default none; "div\(phi,alpha.*\)" Gauss vanLeer; "div\(phir,alpha.*\)" Gauss vanLeer; "div\(alphaRhoPhi.*,U.*\)" Gauss linearUpwind limited; "div\(phi.*,U.*\)" Gauss linearUpwind limited; //"div\(alphaRhoPhi.*,Yi\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,(h|e).*\)" Gauss linearUpwind limited; "div\(alphaPhi.*,f.*\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,K.*\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,\(p\|thermo:rho.*\)\)" Gauss linearUpwind limited; "div\(alphaRhoPhi.*,(k|epsilon|omega).*\)" Gauss linearUpwind limited; "div\(\(\(\(alpha.*\*thermo:rho.*\)\*nuEff.*\)\*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; } wallDist { method meshWave; nRequired yes; }
求解器设置
solvers { "alpha.*" { nAlphaCorr 1; nAlphaSubCycles 1; } droplets { nCorr 1; tolerance 1e-4; scale true; solveOnFinalIterOnly true; sourceUpdateInterval 20; } p_rgh { solver GAMG; smoother DIC; tolerance 1e-8; relTol 0.01; maxIter 20; minIter 2; } p_rghFinal { $p_rgh; relTol 0; } "U.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } "(e|h).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1; relTol 0; minIter 0; maxIter 0; } "(k|epsilon|omega).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } "f.*" { solver PBiCGStab; preconditioner DILU; tolerance 1e-6; relTol 0; } } PIMPLE { nOuterCorrectors 3; nCorrectors 1; nNonOrthogonalCorrectors 0; pRefPoint (0.0276 0 0); pRefValue 101325; } relaxationFactors { equations { ".*" 0.7; } }
-
关于multiphaseEulerFoam运算分散相体积分数问题@李东岳 老师,我这个网格是三维的,图上展示了二维,用的结构网格,of9计算。目前发现我只要把流速设的大一点,就不会有这种问题出现,但是流速变小就不行了。另外,网格壁面不加密且数量少的时候它也不报错,自己也还在找原因中。
-
关于multiphaseEulerFoam运算分散相体积分数问题目前本人在用multiphaseEulerFoam求解器求解孔板中的油水两相流动,孔板架构如图
模拟过程中水是分散相且体积分数设为了0.005,运算时发现有时候运算会报错,计算过程显示Mules算法求解相分数时,不管连续相还是分散相,最小相分数都为0,偶尔为负。请问各位老师和同学们有没有了解这一问题的?不吝赐教。