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
6 帖子 3 发布者 4.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 小 离线
    小 离线
    小考拉
    写于 最后由 编辑
    #1

    老铁们好!

    今天在研究interPhaseChangeFoam求解器中alphaEqn.H代码时,里面的一部分代码自己很困惑,,代码如下:

     if (MULESCorr)
        {
            fvScalarMatrix alpha1Eqn
            (
                fv::EulerDdtScheme<scalar>(mesh).fvmDdt(alpha1)
              + fv::gaussConvectionScheme<scalar>
                (
                    mesh,
                    phi,
                    upwind<scalar>(mesh, phi)
                ).fvmDiv(phi, alpha1)
              - fvm::Sp(divU, alpha1)
             ==
                fvm::Sp(vDotvmcAlphal, alpha1)
              + vDotcAlphal
            );
    
            alpha1Eqn.solve();
    
            Info<< "Phase-1 volume fraction = "
                << alpha1.weightedAverage(mesh.Vsc()).value()
                << "  Min(" << alpha1.name() << ") = " << min(alpha1).value()
                << "  Max(" << alpha1.name() << ") = " << max(alpha1).value()
                << endl;
    
            talphaPhi = alpha1Eqn.flux();
        }
    

    这段代码是MULES 第一步 预测alphal的代码,其中一段代码(如下):

      fvm::Sp(vDotvmcAlphal, alpha1)
              + vDotcAlphal
    

    这个应该是离散源项的代码,在原始公式中对应为11111111111.png
    我又查找了对应的离散公式,感觉是这样的:222222.png
    我不明白:
    1.为什么要这样离散呢?
    2.222222.png 这两项对应的含义分别是什么呢?

    希望大家能够解答一下,也随时欢迎大家与我交流

    谢谢!

    1 条回复 最后回复
  • B 离线
    B 离线
    BlookCFD
    写于 最后由 编辑
    #2

    因为在右端源项里面含有未知数alpha_l,为保证系数矩阵对角占优,当源项大于0时,一般直接做显式处理,而源项小于0时,做隐式处理。

    具体到这里,就是为了拆出小于0的隐式项和大于0的显式项。

    小 1 条回复 最后回复
  • 小 离线
    小 离线
    小考拉
    在 中回复了 BlookCFD 最后由 编辑
    #3

    @BlookCFD 多谢前辈指点:chitang:

    1 条回复 最后回复
  • 沐 离线
    沐 离线
    沐风
    写于 最后由 编辑
    #4

    同学,你好。很高兴发现你也从事interPhaseChangeFoam求解器相关研究工作。我想问一下,在interPhaseChangeFoam求解器主程序中,在pimple.loop()每次循环中中为什么要声明创建surfaceScalarField rhoPhi场,这样做的目的是什么?

    B 1 条回复 最后回复
  • B 离线
    B 离线
    BlookCFD
    在 中回复了 沐风 最后由 编辑
    #5

    @沐风 没有什么特别的目的,就是写法问题,当然你也可以把它放到整个循环外面,只创建一次。

    沐 1 条回复 最后回复
  • 沐 离线
    沐 离线
    沐风
    在 中回复了 BlookCFD 最后由 编辑
    #6

    @BlookCFD 谢谢,这个问题已解决,这个主要涉及到interFoam系列算法子循环求解相连续性方程并修正质量流率,可以将surfaceScalarField rhoPhi在循环外声明创建,但是循环内部每次循环初始值要赋0.

    1 条回复 最后回复

  • 登录

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