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. 不可压湍流模型改成可压湍流模型

不可压湍流模型改成可压湍流模型

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

    不知道有没有人有过把湍流模型从不可压改成可压的经验?不知道难度怎么样?谢谢。

    1. 把不可压缩湍流模型divDevReff(Uc)这一项改掉

    2. 改速度压力耦合策略把密度包含进去

    3. 另外一般可压缩都包含能量方程

    大体这三步。前俩步不难,后一步需要考虑流体力学模型然后才能进行计算流体力学离散。

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #6

    @东岳 谢谢东岳老师。您说的这些是针对可压不可压求解器的修改?
    我目前想改LamBremhorstKE低雷诺数湍流模型,从不可压改成可压/不可压都可以用的湍流模型,我是参照着LaunderSharmaKE模型来改的。
    具体的k方程和e方程:
    epsilon.png
    改成
    epsilongai.png

    k.png
    改成
    k改.png

    不确定这么改有没有效果,正在尝试。

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 cccrrryyy 最后由 编辑
    #7

    @cccrrryyy 用的buoyantSimpleFoam,这个求解器适用于我的问题,应该没啥问题,湍流模型正在测试。

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

    原来如此,那你这个套路是正确的,步骤2 3你已经完成了 :ok2: 不过我才发现这个湍流模型竟然是不可压缩版本 为什么没有可压缩版?原始文献也没有么

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

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    写于 最后由 编辑
    #9

    原始文献里面:

    k方程k1.png k2.png

    epsilon方程:epsilon1.png

    这么看来是不可压缩的?不确定我这么改成可压版本的会不会是徒劳。

    另外,SuSp,kSource(),epsilonSource(),fvOptions这几项的添加我也不太确定有没有必要。

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

    看起来是个不可压缩湍流方程...

    Susp对于可压缩有必要。对于你的单相流kSource(),epsilonSource()没必要,如果没有源项,fvOptions也没必要

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #11

    @东岳 谢谢老师!原始文献都只是不可压缩湍流方程,那我改成可压缩就不知道有没有意义了:zoule:

    李东岳李 C 2 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #12

    我建议你找找把他改成可压缩版本的SCI,然后引用,这就没得说了。不过如果审稿人不懂这方面,可能也不会挑。

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

    1 条回复 最后回复
  • C 离线
    C 离线
    cccrrryyy 超神
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #13

    @Calf-Z-DNS 原来原始文献是这样,那说明它的推导是按照不可压来进行的,按道理讲后续应该会有人把它延伸至可压吧?这个需要你自己去查文献了。

    一般可压比不可压好像会多出来一些项,参见Fluent处理可压kEpsilon的方式。OpenFOAM里面虽然代码上模板化了,但是也可以看到可压比不可压要多出来一些项(我也只看过kEpsilon)。

    I don't want to survive, I want to thrive.

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 cccrrryyy 最后由 编辑
    #14

    @cccrrryyy 对的,可压里面多了Susp(2/3...)、epsilonSource、fvOptions这些项,添加这些项不知道对收敛性会不会有影响,反正现在这个湍流模型跑的例子一直没收敛。

    另外对于低雷诺数湍流模型,k壁面我取定值,但epsilon壁面不知应该取epsilonWallFuntion(OF5中它可以用在低雷诺数湍流模型的情况下)还是取zeroGradient(Chalmers论文里面的建议)?

    C 1 条回复 最后回复
  • C 离线
    C 离线
    cccrrryyy 超神
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #15

    @Calf-Z-DNS 带有SuSp或者Sp字符的是为了增加计算稳定性弄的,这些字符可以保留,源项之类的就像东岳老师说的,单相流里面一般也不考虑这些。至于SuSp(2/3...)这个项,我之前研究kepsilon的时候推导过,这一项不是为了稳定性,这一项是从Bousinesq假设里面推出来的,所以它是理论上就存在的一项。这个地方建议你看看cfd-online上的这个帖子

    https://www.cfd-online.com/Forums/openfoam-solving/176542-k-epsilon-implementation-including-volscalarfield-g.html

    听起来你对低雷诺数模型比我熟悉多啦,我一般就是k用kqRWallFunction,epsilon用你说的低雷诺数模型。这里我是参考Fluent的,因为Fluent里面有提到过壁面模型分成两块啥的,在什么y*小于11的时候用一个,大于11的时候用另一个,然后我看了OpenFOAM源码,感觉低雷诺数的那个壁面函数好像就是类似这样,所以就用了。我没有比较过它和zeroGradient的区别。

    I don't want to survive, I want to thrive.

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    写于 最后由 编辑
    #16

    谢谢!这么看来fvoptions可以保留着,那么susp(2/3)这一项是从Bousinesq假设推导出来的话,它是在不可压里面适用?还是我理解有误。

    另外我看不可压湍流模型里面没有susp fvoptions source这些项,而可压不可压通用的湍流模型就有。所以我改的时候就不知道怎么取舍。

    而且目前湍流模型测试结果看起来不好,收敛性一直很差,调了边界条件、代码也都一样。:zoule:

    1 条回复 最后回复
  • C 离线
    C 离线
    cccrrryyy 超神
    写于 最后由 编辑
    #17

    你看好像是比较早的版本的,从2.3.0开始可压不可压的代码应该是一样的,就是之前我们讨论过的,是全部用template去做的。比如kEpsilon在4.x里面就是

    https://github.com/OpenFOAM/OpenFOAM-4.x/blob/master/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C

    注意susp(2/3)那一项完整的是fvm::SuSp((2.0/3.0)*alpha()*rho()*divU, k_)或者fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha()*rho()*divU, epsilon_)。不可压的时候这一项为0。我看了2.1.0的kEpsilon的代码,确实如你所说,不可压的里面没有susp这一项,可能是认为是0所以直接给去掉了。但实际上,把这一项加上是cfd里面更常规的做法,因为在计算没有收敛的时候(即使是不可压)这一项不一定就等于0,把它加上更有利于计算稳定性。总而言之,这一项应该是要加上的,对于不可压的case加上是有利于计算稳定性,原则上不会影响计算结果,但对于可压的case它不等于0,是有大小的。

    按你之前说的,我觉得你目前的问题可能不在代码方面,而是你要修改的这个湍流模型是否有可压缩版本(经过严格理论推导的),或者更基础的,这个湍流模型适用于可压缩流吗?

    仅供参考。

    I don't want to survive, I want to thrive.

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 cccrrryyy 最后由 编辑
    #18

    @cccrrryyy 谢谢,很有帮助!

    我目前也在找是否有可压缩版本的文献,但发现做低雷诺数湍流模型的本身就比较少,不知道有什么有效的途径可以找到。目前能参考的就是原始文献,从方程上看应该是不可压的,所以有点虚。

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

    @Calf-Z-DNS LamBremhorstKE模型为什么没有可压缩版本?文献讨论没有?

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    cccrrryyy 超神
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #20

    @Calf-Z-DNS 我看你在cfd-online也发了帖子,好像没有人回复,说明这个问题可能比较小众。这种有点麻烦,就是不知道从什么地方入手。我感觉你需要找更多的人讨论一下,按道理一个湍流模型应该是有可压缩版本的,但是这个湍流模型是不是在推导的时候做了什么假设之类的?希望有搞湍流模型的专家来解答。

    I don't want to survive, I want to thrive.

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 李东岳 编辑
    #21

    @东岳 今天找到一篇论文:
    名字.png

    论文根据LB模型做了一些修改,给出的方程:
    可压LB.png

    看上去应该是可压的LB模型了。

    我对比过它跟我改的代码的差别,基本都一样,不太明白的就在GB这一项,应该是由浮升力引起的项。
    openfoam里面是:fvm::SuSp((2.0/3.0)*alpha*rho*divU, k_)或fvm::SuSp(((2.0/3.0)*gamma_)*alpha*rho*divU, omega_)
    我不知道它跟GB等不等价,看上去差很多。还需要研究一番。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 Calf.Z-DNS 最后由 李东岳 编辑
    #22

    @Calf-Z-DNS 对于LB,应该是- fvm::SuSp(2.0/3.0*alpha*rho*divU, k_)与 - fvm::SuSp(((2.0/3.0)*Ceps1_ - C3_)*alpha*rho*divU, epsilon_),不小心复制成komega了。

    1 条回复 最后回复
  • C 离线
    C 离线
    cccrrryyy 超神
    写于 最后由 编辑
    #23

    辛苦辛苦。

    OpenFOAM的kEpsilon模型是没有考虑浮升力的,所以这个文章里面带浮升力的项本身就是额外的。你从代码里也可以看到,OpenFOAM的kEpsilon是没有包含重力加速度的(OpenFOAM-4.x)。参见这里,https://www.openfoam.com/documentation/guides/latest/doc/guide-turbulence-ras-k-epsilon.html。

    我个人感觉你目前还不需要考虑浮升力这一项,这个文章看标题它是针对buoyancy-driven flow的,所以它需要处理浮升力。从你要修改湍流模型的角度来讲这些都属于附加项,可以先不考虑吧。

    话说这个Chalmers University of Technology好像开了好几年的针对OpenFOAM的课程了(http://www.tfd.chalmers.se/~hani/kurser/OS_CFD/),是个不错的学习材料!

    I don't want to survive, I want to thrive.

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 cccrrryyy 最后由 编辑
    #24

    @cccrrryyy 谢谢!

    不过我的case正好是研究考虑浮升力的影响而引起的传热恶化现象,所以感觉有必要研究一下GB这一项。Chalmers 的课程我之前有注意到过。

    李东岳李 1 条回复 最后回复

  • 登录

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