不知道为什么会生成特别蛋疼的field
-
field 1: AUX_SumUp2 如下图
field 2 :AUX_npIter 如下图
再我的solver中有两个field 数值相除的情况
AUX_npIter += kinematicCloud.npCell(); AUX_npIter.correctBoundaryConditions(); AUX_SumUp += kinematicCloud.SumUpCell(); //AUX_SumUp.correctBoundaryConditions(); IVT_UpMean = AUX_SumUp/(AUX_npIter + ROOTVSMALL); IVT_UpMean.correctBoundaryConditions();
但是结果十分诡异,如下图。
CellValue 正常,如下图。
请问各位大佬如何能解决这个神奇的问题。。。
麻烦了 -
-
-
@东岳 npiter 是数 parcel 有多少的,所以再某些地方会出现0,因此加上ROOTVSMALL,但是我改了SMALL,结果一样,只是值小了,异常数据的位置还是相同的
-
这个是npiter的 cell值,ROOTSVMALL 一般都在 e-300左右?open foam自带的
-
IVT_UpMean = AUX_SumUp/(AUX_npIter + ROOTVSMALL);
这个公式是做什么?如果
AUX_npIter
(粒子数)是0,那IVT_UpMean
必然是一个非常大的值。我觉得你要不然障眼法一下:IVT_UpMean = pos0(AUX_npIter)*AUX_SumUp/(AUX_npIter + ROOTVSMALL);
-
这个公式是计算平均速度,npiter这几步中,将parcel的速度加和,然后求平均值
IVT_UpMean = AUX_SumUp/(AUX_npIter + ROOTVSMALL);但是情况是这样的,我的cell值都没啥事,但是point的值就很诡异了
-
@东岳 请麻烦再问一下 pos0是干嘛用的。。我刚才搜了一下 没看到
-
找到以前的case看了一下,
图1 是SumUp的cell值,靠近壁面比较小图2 是nptier的cell值,可以看到靠近墙壁的值有一点,25左右
最后两个field 相除的的结果是这样
-
应该是除法的问题,壁面附近的粒子数为0,分母和分子都很小,但是分子的量级更小,才会出现局部大值,建议特别处理这种情况
-