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. 通量phi的计算问题

通量phi的计算问题

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

    各位大佬,请教一个代码问题:关于求解器在什么时候计算通量phi的值
    以simpleFoam为例,在组装速度方程系数矩阵的时候,散度项会用到phi:

    tmp<fvVectorMatrix> tUEqn
    (
        fvm::div(phi, U)
      + MRF.DDt(U)
      + turbulence->divDevSigma(U)
     ==
        fvModels.source(U)
    );
    

    phi是在createPhi.H里初始化的,代码如下:

    surfaceScalarField phi
    (
        IOobject
        (
            "phi",
            runTime.timeName(),
            mesh,
            IOobject::READ_IF_PRESENT,
            IOobject::AUTO_WRITE
        ),
        fvc::flux(U)
    );
    

    fvc::flux(U)是确定了phi的一个计算方式?那,只要用到phi的地方就会更新phi的值吗,还是有什么代码会暗中计算一下,如果我在程序里写phi=fvc::flux(U),也能正常计算是吗
    主要是现在我需要在求解器里加入另一个速度的方程,需要计算这个速度的通量,甚至在主流U的方程里就会用到另一个速度的通量,但是通量的计算结果不太对,每隔一个数就会有一个0

    tmp<fvVectorMatrix> tUEqn
    (
        fvm::div(phi, U)
      + MRF.DDt(U)
      + turbulence->divDevSigma(U)
     ==
        fvModels.source(U)
      + fvc::div(phi2, U2)
    );
    

    类似上面这样的形式,直接在方程里加一个另一个速度的散度项,这样计算出来的phi2就不太对,请问这样直接引用phi2对吗各位老师,还是我需要在速度方程之前自己算一下这个phi2的值

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

    那,只要用到phi的地方就会更新phi的值吗,还是有什么代码会暗中计算一下

    pEqn.H里面更新了phi

    我在程序里写phi=fvc::flux(U),也能正常计算是吗

    能

    tmp<fvVectorMatrix> tUEqn

    你这个方程里面的phi2,应该需要显性的更新一下

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

    evensunE 1 条回复 最后回复
  • evensunE 离线
    evensunE 离线
    evensun
    在 中回复了 李东岳 最后由 编辑
    #3

    @李东岳 谢谢老师
    老师说的pEqn.H里的更新,是指phi = phiHbyA - pEqn.flux()对吗,这个是SIMPLE算法里压力修正完了更新一下速度,我理解的没错吧老师(您的simpleFoam解析我可是学了很多遍 XD )
    那下一次迭代的时候,UEqn里用的phi用的就是上一次pEqn里更新过的,是吗老师

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

    你说的没毛病,老铁

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

    1 条回复 最后回复

  • 登录

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