@李东岳 过奖了老师
火山口玩泥巴
帖子
-
surfaceScalarField可视化后处理方法? -
surfaceScalarField可视化后处理方法?问题解决了:我之前一直忘记了一个事情,就是paraview是可以直接显示边界值的,即使是volScalarField。而我的surfacaScalarField的非0值也仅存在于边界上。所以最简单的办法就是将surfaceScalarFIeld输出文件里的
class surfaceScalarField;
改成:
class volScalarField;
让paraview将其识别为volScalarField即可。
-
surfaceScalarField可视化后处理方法?@李东岳 但老师我看paraview里的面编号似乎和openfoam里的不一样啊?
-
surfaceScalarField可视化后处理方法?如题,计算过程中得到了一个仅在边界上有非0值的surfaceScalarField,想用后处理软件看一下这个标量场在边界上的分布情况,但似乎paraview没法直接处理面心场的?参考了CFD Online上的一些方法:用foamToVTK -surfaceField提取出来这个场,接着用paraview打开得到的vtp文件,再添加glyph过滤器。但这种方法得到的效果会很差,因为似乎是把这个标量场作为point data进行处理了,并不能得到平常的那种云图效果。效果如下:
请问各位大佬们有什么好的方法来解决这个问题呢? -
OpenFOAM并行计算不同进程数下获取场的积分值不同@李东岳 好的老师,我再测试测试看看效果。也可能是因为我没有用OpenFOAM自己的ThirdParty来编译那部分库,而是使用的自己下的scotch对一部分进行编译导致的。
-
OpenFOAM并行计算不同进程数下获取场的积分值不同这个是我在MacOS上测试的,同时我也在Ubuntu24.04上测试了,会出现一样的问题(即前后两次划分区域不一致)。所用的scotch库的版本分别为7.0.7和7.0.4。
-
OpenFOAM并行计算不同进程数下获取场的积分值不同@李东岳 抱歉老师前两天在忙别的。是v2312版本。
-
OpenFOAM并行计算不同进程数下获取场的积分值不同@李东岳 老师,我没有采用不同的decompose方法,为了图方便均采用scotch,但前后两次划分结果竟然是不同的,这点让我很不解
-
OpenFOAM并行计算不同进程数下获取场的积分值不同@李东岳 在 OpenFOAM并行计算不同进程数下获取场的积分值不同 中说:
scalar meshVolume(0);
forAll(mesh.V(),cellI)
{
meshVolume += mesh.V()[cellI];
}Pout << "Mesh volume on this processor: " << meshVolume << endl;
reduce(meshVolume, sumOp<scalar>());
Info << "Total mesh volume on all processors: " << meshVolume << endl;老师,您的代码我测试了,结果如下:
四核:[0] Mesh volume on this processor: 829.44 [1] Mesh volume on this processor: 1320.32 [2] Mesh volume on this processor: 718.72 [3] Mesh volume on this processor: 1499.52 Total mesh volume on all processors: 4368
双核:
[0] Mesh volume on this processor: 2177.28 [1] Mesh volume on this processor: 2190.72 Total mesh volume on all processors: 4368
但是domainIntegrate这个函数的作用不就是为了整合各个计算域之间的结果吗:
domainIntegrate(phi) = gSum(fvc::volumeIntegrate(phi));
同时我测试了另一个网格,用24核和36核算了一段时间后发现两者相同时间下差距较小,感觉应该不是某一个核心的结果,而更像是误差?
同时还想请教一个问题,就在刚刚我发现前后两次不改任何设置的情况下,进行decompose操作(scotch方法)得到计算域划分结果竟然是不同的:
进而导致一个计算正常进行,一个计算一段时间就发散了,这是什么原因? -
OpenFOAM并行计算不同进程数下获取场的积分值不同如题,我尝试使用如下方法获取alpha2在整个计算域上的积分值:
scalar globalAlphaV = fvc::domainIntegrate(alpha2).value();
但令我不解的是,当我分别尝试用单核、双核、4核进行计算,得到的globalAlphaV的结果却不同,这是为什么?
单核:t value 0.00120482 0 0.00265769 6.08302e-07 0.00439595 1.09555e-06 0.00647429 1.2463e-06 0.0089355 1.33113e-06 0.0118731 1.38863e-06 0.0153981 1.38907e-06 0.0196282 1.86323e-06 0.0246515 2.1633e-06 0.0304475 2.7274e-06 0.0374028 3.00516e-06 0.0452274 3.34962e-06
双核:
t value 0.00120482 0 0.00265769 2.03837e-06 0.00439595 1.92813e-06 0.00647429 2.09112e-06 0.0089355 2.13259e-06 0.0118731 2.12188e-06 0.0153981 2.22201e-06 0.0196282 2.49843e-06 0.0246515 2.58062e-06 0.0304475 2.77294e-06 0.0374028 2.95374e-06 0.0452274 3.17708e-06
四核:
t value 0.00120482 0 0.00265769 2.96666e-07 0.00439595 1.55379e-07 0.00647429 2.30832e-07 0.0089355 4.49495e-07 0.0118731 5.51889e-07 0.0153981 6.1708e-07 0.0196282 6.46681e-07 0.0246515 7.35564e-07 0.0304475 7.13041e-07 0.0374028 8.00214e-07 0.0452274 8.97498e-07
-
refineMesh加密网格出现错误我尝试用refineMesh进行多层加密,第一层加密完成后,在其内部的一个子区域进行第二次加密时,出现useHexTopology specified but cell 5018638 on face 7394 of patch bottom is not a hex的问题,我检查发现5018638单元并不在我的第二次加密区域内,为什么仍然要检查他是否为hex?
以下为refineMeshDict:set expand7; coordinateSystem patchLocal; patchLocalCoeffs { patch bottom; tan1 (0 0 1); } directions ( tan1 tan2 ); useHexTopology yes; geometricCut no; writeMesh no;
如果改用geometricCut会不会导致网格质量下降?
-
of中的多相流求解器@dzw05 因为limitSum仅仅对anti diffusion flux进行限制,在限制完后再和低阶格式组装成总通量
-
大规模算例paraview看结果的一种方法@xpqiu 好的谢谢
-
大规模算例paraview看结果的一种方法@火山口玩泥巴 因为准备申请个学校的云主机进行后处理,计算时用了128核,现在申请云主机的核数也需要至少128吗?
-
大规模算例paraview看结果的一种方法请问使用这个功能的时候,需要保证cpu核数大于等于并行时decompose的数吗?
-
多相流计算中入口的速度过小导致计算结果不符想尝试与一篇文献中实验结果作对比,但根据文中所提供的条件算出的入口速度很小(0.18m/s),以此作为入口的边界条件;同时入口边界的alpha.water也固定为1,计算一段时间后如图所示,发现入口处几乎没有水相的存在了。这是为什么?
入口处的边界条件如下:
U { type fixedValue; value uniform (0.18 0 0); } p_rgh { type zeroGradient; } alpha.water { type fixedValue; value uniform 1; } alpha.air { type zeroGradient; }
-
三相空化计算明渠流动失败@李东岳 LES和laminar都试过,只要把空化核数降一些就不会发散。
-
三相空化计算明渠流动失败@李东岳 是的老师,OF没提供三相空化的标准求解器,只能自己改着用,但又没啥经验,总怕自己改的这玩意稳定性太差。关键我对湍流模型了解的太浅了,k和omega越界这个东西我想改都无从下手。
-
三相空化计算明渠流动失败@李东岳 不是完全自己写的老师,是在interPhaseChangeFoam基础上改的,加了一个空气相进去。
在粗网格下面,用interFoam来算,使用komegaSST,在一定的k和omega的边界条件下不会出现发散的情况;但用自己的求解器去算即使把相变系数调到0,k和omega的边条初条怎么调都还是会发散。 -
三相空化计算明渠流动失败直接先用upwind处理相方程了。然后尝试使用LES的话可以正常计算粗网格,前提是得把空化核密度降低两个数量级,否则出口处会出现奇怪的低压区,这里不懂为什么会这样。