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. VOF添加斥力模型

VOF添加斥力模型

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

    才想起来,你这个还是周期性网格,所以需要给定压力参考点,我自己简单算了个纯粹的气泡上升,压力还没啥问题。

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

    学流体的小明学 1 条回复 最后回复
  • 学流体的小明学 离线
    学流体的小明学 离线
    学流体的小明 神
    在 中回复了 李东岳 最后由 编辑
    #19

    之前试算了很多,发现压力参考点不是最根本的原因,最根本的原因还是添加了这个斥力源项导致的流场压力不稳定。不用压力参考点也算出来了这种压力振荡。
    应该是和具体的代码有关系,和SIMPLE算法里面预测方程有关系。
    我没有往UEqn中加这个斥力项,仅加在了phig里面,也就是在压力泊松方程里面加了,后面速度修正那一行代码中,斥力也是体现在phig当中。
    李老师您怎么写的代码?

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

    我没有写全,就在function里面测试了一下这个力的大小(很多参数都是拍脑袋硬植入):

    
    functions
    {
        setDeltaT
        {
            type coded;
            libs            ("libutilityFunctionObjects.so");
            writeControl    writeTime;
            executeControl  timeStep;
    
            code
            #{
            #};
    
            codeExecute
            #{
                const volScalarField& alpha
                (
                    mesh().lookupObject<volScalarField>("alpha.air")
                ); 
    
                const surfaceVectorField& Sf = mesh().Sf();
    
                const volVectorField gradAlpha("gradAlpha", fvc::grad(alpha));
    
                surfaceVectorField gradAlphaf(fvc::interpolate(gradAlpha));
    
                const dimensionedScalar deltaN_
                (
                    "deltaN",
                    1e-8/pow(average(mesh().V()), 1.0/3.0)
                );
    
                surfaceVectorField nHatfv(gradAlphaf/(mag(gradAlphaf) + deltaN_));
                volVectorField nHatv("nHatv", gradAlpha/(mag(gradAlpha) + deltaN_));
    
                surfaceScalarField nHatf = nHatfv & Sf;
    
                volScalarField K("K", -fvc::div(nHatf));
                volScalarField interface("interface", alpha);
                volVectorField force("force", nHatv);
    
                List<label> markedCell;
    
                forAll(mesh().C(), i)
                {
                    force[i] = Zero;
                    if (alpha[i] < 0.99 && alpha[i] > 0.01)
                    {
                        interface[i] = 1.0;
                        markedCell.append(i);
                    }
                    else
                    {   
                        interface[i] = 0.0;
                    }
                }
    
                forAll(markedCell, i)
                {
                    label celli = markedCell[i];
                    forAll(markedCell, j)
                    {
                        label cellj = markedCell[j];
                        scalar dij = mag(mesh().C()[celli] - mesh().C()[cellj]);
                        scalar posneg = nHatv[celli] & nHatv[cellj];
    
                        if (posneg < 0.0)
                        {
                            if (dij < 0.15)
                            {
                                scalar K = 1e-2;
                                force[celli] += K*nHatv[celli]/pow3(dij);
                            }
                        } 
                    }
                }
    
                markedCell.clear();
                K.write();
                nHatv.write();
                gradAlpha.write();
                force.write();
                interface.write();
            #};
        }
    }
    

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

    1 条回复 最后回复
  • 学流体的小明学 离线
    学流体的小明学 离线
    学流体的小明 神
    写于 最后由 编辑
    #21

    李老师,想请教一下源项的添加的问题。
    比如我现在在有一个repulsion源项,要想植入,应该是有三个地方要添加。


    一,速度预测方程,即UEqn.H中的fvMatrix UEqn。但我不清楚这里是否要加上源项。
    加的理由是:fvOptions这种人工添加的源项都在。
    不加的理由是:写的那个icoFoam解析,以及这里实际上只保留了对流项和粘度项,压力、表面张力和重力都没有加,这个斥力在形式上是和表面张力有关的,就像表面张力那样处理。

    fvVectorMatrix UEqn
        (
            fvm::ddt(rho, U) + fvm::div(rhoPhi, U)
          + MRF.DDt(rho, U)
          + turbulence->divDevRhoReff(rho, U)
         ==
            fvOptions(rho, U)
          + repulsion_Vector // add
        );
    

    二,真实速度方程,一般的想法都是加上这个源项,就是最后的速度修正项是
    2a89615d-1ebd-4009-b74d-ce99034e9d16-image.png
    但是在reactingTwoPhaseEulerFoam中,我看到这些源项都是直接加到最后的速度上的,不知道这里是您省略它们的具体形式了,还是这些$M$确实就不除以$ A_{d,p} $
    746e3e97-6f3a-4604-84dd-ef613a0b6a02-image.png
    46c5812f-67d5-4089-8201-15364fb3869c-image.png
    就是这两种方式应该是哪一种?还是两种都可以?


    三,上面两种不同方式的速度方程,对应不同的压力泊松方程,也就差个$ A_{d,p} $

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

    速度预测方程,即UEqn.H中的fvMatrix UEqn。但我不清楚这里是否要加上源项。

    不需要加

    源项你直接1)加到phi上面组建压力方程,2)最后的速度更新要加上源项

    我那个M都忘记除掉A了,是要除掉,我有遗漏,我周末更新过去
    http://dyfluid.com/reactingTwoPhaseEulerFoam.html 这个里面41-46之前写的一直没更新 29之前是我最近更新的 没问题

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

    学流体的小明学 1 条回复 最后回复
  • 学流体的小明学 离线
    学流体的小明学 离线
    学流体的小明 神
    在 中回复了 李东岳 最后由 编辑
    #23

    不需要加

    源项你直接1)加到phi上面组建压力方程,2)最后的速度更新要加上源项

    这种方法算得的结果就是那些有压力振荡不稳定的。


    另一种方法:仅添加到UEqn当中,压力方程不做处理,斥力的贡献依靠UEqn.H参与到后续的计算当中。结果就没有压力振荡了。
    目前初步的结果是这样的,后续可能还有其它问题。


    非常感谢李老师这么久这么多的指点,帮助太大了。

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

    另一种方法:仅添加到UEqn当中,压力方程不做处理,斥力的贡献依靠UEqn.H参与到后续的计算当中。结果就没有压力振荡了。

    :146: :146: :146: :146:

    Interesting!

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

    1 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 学流体的小明 最后由 编辑
    #25

    @学流体的小明 大佬后来你们多相流直接模拟的工作发出来没

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

    学流体的小明学 1 条回复 最后回复
  • 学流体的小明学 离线
    学流体的小明学 离线
    学流体的小明 神
    在 中回复了 李东岳 最后由 学流体的小明 编辑
    #26

    @李东岳 谢谢李老师关心呀。算例模拟完了,文章😂我还在写。
    算出来的结果不是很好,气泡槽道流收敛性还比较差,几个参数之间的规律不是很明显,故事不太好讲。

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

    不好讲故事是比较困境了,哎..

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

    1 条回复 最后回复

  • 登录

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