Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 不知道为什么会生成特别蛋疼的field

不知道为什么会生成特别蛋疼的field

已定时 已固定 已锁定 已移动 OpenFOAM
11 帖子 3 发布者 7.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 星 离线
    星 离线
    星星星星晴
    写于 最后由 编辑
    #1

    field 1: AUX_SumUp2 如下图
    71d053f2-cc0f-49eb-b00b-aeed1b4c0a2a-image.png

    field 2 :AUX_npIter 如下图
    686fe869-945b-4147-952c-bbe7443b30de-image.png

    再我的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();
    
    

    但是结果十分诡异,如下图。
    261ca456-725a-4670-9297-85b040112bc3-image.png

    CellValue 正常,如下图。
    a8eded70-e13c-45c1-b4b1-539b7cef0fc3-image.png

    请问各位大佬如何能解决这个神奇的问题。。。
    麻烦了

    游荡

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    @星星星星晴 在 不知道为什么会生成特别蛋疼的field 中说:

    AUX_npIter

    会不会这个值在边界处太太太小了,导致结果边界处太大了

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    星 1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #3

    @星星星星晴 在 不知道为什么会生成特别蛋疼的field 中说:

    AUX_npIter

    能否看一下AUX_npIter和ROOTSMALL的量级比较

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 李东岳 最后由 编辑
    #4

    @东岳 npiter 是数 parcel 有多少的,所以再某些地方会出现0,因此加上ROOTVSMALL,但是我改了SMALL,结果一样,只是值小了,异常数据的位置还是相同的

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 yfclark 最后由 编辑
    #5

    @yfclark f9234838-4387-4543-9fd6-8e9b4a605ebb-image.png

    这个是npiter的 cell值,ROOTSVMALL 一般都在 e-300左右?open foam自带的

    游荡

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #6

    @星星星星晴

    IVT_UpMean = AUX_SumUp/(AUX_npIter + ROOTVSMALL);
    

    这个公式是做什么?如果AUX_npIter(粒子数)是0,那IVT_UpMean必然是一个非常大的值。我觉得你要不然障眼法一下:

    IVT_UpMean = pos0(AUX_npIter)*AUX_SumUp/(AUX_npIter + ROOTVSMALL);
    

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    写于 最后由 李东岳 编辑
    #7

    这个公式是计算平均速度,npiter这几步中,将parcel的速度加和,然后求平均值
    IVT_UpMean = AUX_SumUp/(AUX_npIter + ROOTVSMALL);

    但是情况是这样的,我的cell值都没啥事,但是point的值就很诡异了

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 李东岳 最后由 编辑
    #8

    @东岳 请麻烦再问一下 pos0是干嘛用的。。我刚才搜了一下 没看到

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 yfclark 最后由 编辑
    #9

    @yfclark

    找到以前的case看了一下,
    图1 是SumUp的cell值,靠近壁面比较小

    df879c32-a6b1-4827-958a-593ac22b411a-image.png

    图2 是nptier的cell值,可以看到靠近墙壁的值有一点,25左右

    2152fe54-8a26-44c5-bda3-1de5ed4d7fa8-image.png

    最后两个field 相除的的结果是这样
    a5ea132c-f9a2-44c4-a83a-796276fc4ced-image.png

    游荡

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #10

    应该是除法的问题,壁面附近的粒子数为0,分母和分子都很小,但是分子的量级更小,才会出现局部大值,建议特别处理这种情况

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #11

    @星星星星晴 在 不知道为什么会生成特别蛋疼的field 中说:

    我的cell值都没啥事,但是point的值就很诡异了

    那可能是边界条件的问题,

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]