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. small常数

small常数

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

    自己定义了一个类,里面有个除法,由于担心分母太小,因此在除法之前想判别分母是否小于一个很小的数,在OpenFOAM的源代码中有如下例子:

    if ((d1 - d3) < rootVSmall)
    

    或者

         epsilonMin_
         (
             dimensioned<scalar>::lookupOrAddToDict
             (
                 "epsilonMin",
                 RASDict_,
                 kMin_.dimensions()/dimTime,
                 small
             )
         ),
    

    我自己写成

    if(d<small)或者if(d<rootVSmall)
    

    就报错未定义small或者rootVSmall。请问如何引用这两个小量呢?

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

    直接用就行

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

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 东岳老师,你是说直接除以这个数而不判断吗?这个例子是在算一个点到一个线段的距离,如果分母很小,说明线段两个端点过近,所以直接算点到端点的距离就可以。所以我想判断一下分母是否小于small。不过编译错误,提醒我未定义small。我后来直接用了10e-10了。不过不知道默认的small是多大。。

    李东岳李 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 Samuel-Tu 最后由 编辑
    #4

    @Samuel-Tu 我记得是1e-16,是大写的SMALL,我的意思你直接用SMALL,不需要写什么include<small>之类

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

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 李东岳 最后由 编辑
    #5

    @东岳 感谢,大写SMALL成功了。我还输出了一下SMALL和GREAT。输出了下是1e-15和1e+15。

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 Samuel-Tu 最后由 编辑
    #6

    @Samuel-Tu ROOTVSMALL

    游荡

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 星星星星晴 最后由 编辑
    #7

    @星星星星晴 谢谢,大写的SMALL编译成功了。ROOTVSMALL还没试过。

    1 条回复 最后回复
  • thegameT 离线
    thegameT 离线
    thegame
    写于 最后由 编辑
    #8

    https://www.cfd-online.com/Forums/openfoam-solving/120990-small-great-rootvsmall-what.html
    里面写了small常数还有这些以及大小

    static const doubleScalar doubleScalarGREAT = 1.0e+15;
    static const doubleScalar doubleScalarVGREAT = 1.0e+300;
    static const doubleScalar doubleScalarROOTVGREAT = 1.0e+150;
    static const doubleScalar doubleScalarSMALL = 1.0e-15;
    static const doubleScalar doubleScalarVSMALL = 1.0e-300;
    static const doubleScalar doubleScalarROOTVSMALL = 1.0e-150;
    

    以及在OpenFOAM-7数值改变了(https://github.com/OpenFOAM/OpenFOAM-7/commit/c902c7a396c43ff733b33294f79acab03d7b92d8#diff-118c1e97b96036fb1f9d7f1ee5912713)
    d8bec1f9-3829-4c38-873f-62207d498415-image.png
    测试了一下OpenFOAM-7的VSMALL结果:
    430638be-f3c0-4d6c-a853-fd82f9b03400-image.png

    1 条回复 最后回复

  • 登录

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