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. 添加源项fvOptions编译出错

添加源项fvOptions编译出错

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

    各位老师好,大家好:
    最近在twoLiquidMixingFoam中添加fvOptions项后wmake时出现了如下错误,显示我的fvOptions没有定义:

    In file included from my_twoLiquidMixingFoam.C:78:0:
    alphaDiffusionEqn.H: In function ‘int main(int, char**)’:
    alphaDiffusionEqn.H:11:10: error: ‘fvOptions’ was not declared in this scope
           == fvOptions(alpha1)//add
              ^~~~~~~~~
    alphaDiffusionEqn.H:11:10: note: suggested alternative: ‘fvOption_H’
           == fvOptions(alpha1)//add
              ^~~~~~~~~
              fvOption_H
    
    

    但是,我在C文件的开头中添加了fvOptions头文件,此外,Make文件夹中options中也有lfvoptions:

    #include "pimpleControl.H"
    #include "fvOptions.H"//add this
    
    EXE_LIBS = \
        ......
        -lfvOptions \
        -lmeshTools
    

    请问大家这是什么原因?有什么解决办法吗?
    期待大家的回复和解答。

    此外,我还有一个问题,fvOptions和fvOption_H有什么区别呢?我没有找到fvOption_H的文件

    另外,我的alphaDiffusionEqn.H是这样写的

    {
        fvScalarMatrix alpha1Eqn
        (
            fvm::ddt(alpha1)
          - fvc::ddt(alpha1)
          - fvm::laplacian
            (
                volScalarField("Dab", Dab + alphatab*turbulence->nut()),
                alpha1
            )
          == fvOptions(alpha1)//add
        );
    
        fvOptions.constrain(alpha1Eqn);//add this
        alpha1Eqn.solve();
        fvOptions.correct(alpha1);//add this
    
        alpha2 = 1.0 - alpha1;
        rhoPhi += alpha1Eqn.flux()*(rho1 - rho2);
    }
    
    rho = alpha1*rho1 + alpha2*rho2;
    

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

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

    先说这个:你这个fvOptions加到了alpha方程,是要处理什么数学问题?

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

    M 1 条回复 最后回复
  • 马乔马 离线
    马乔马 离线
    马乔 大神
    写于 最后由 编辑
    #3

    因为fvOptions只是fv::options的一个对象,这里用了它的操作符()。所以你要定义个fv::option对象。或者直接包含createFvOptions.H吧:xiezuoye:

    装逼没输过,吵架没赢过!

    M 1 条回复 最后回复
  • M 离线
    M 离线
    merlinizlf
    在 中回复了 李东岳 最后由 编辑
    #4

    @东岳 老师您好,添加这个项就是想在不改变网格的条件下,在某个位置设置一个新的入口,设置fvOptions后就能通过只修改topoSet中的区域划分来不断修改新的入口的位置。不然的话,没改变一次新的入口的位置就需要重新划分一下网格,太麻烦了。(/ω\)

    之前在pisoFoam中是成功实现了,但是在这里却失败了
    pisoFoam中UEqn改的地方:

        fvm::ddt(U) + fvm::div(phi, U)
      + MRF.DDt(U)
      + turbulence->divDevReff(U)
     ==
        fvOptions(U)
    );
    UEqn.relax();
    fvOptions.constrain(UEqn);//
    

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

    1 条回复 最后回复
  • M 离线
    M 离线
    merlinizlf
    在 中回复了 马乔 最后由 编辑
    #5

    @马乔 老师您好,非常感谢老师您的指点,我仔细对比了一下,pisoFoam的createFields.H中本来就包含了createFvOptions.H这个文件,现在我加上createFvOptions.H后已经编译成功了。

    但是,现在又出现了一个问题,alpha的fvOptions已经可以计算了,但是U在计算过程中却出现了单位不一致的问题,:135: 但是我却检查不出来问题,还请老师您能再指点一下:xinxin:

    报错:

    --> FOAM FATAL ERROR: 
    incompatible dimensions for operation 
        [U[1 -2 -2 0 0 0 0] ] == [U[0 1 -2 0 0 0 0] ]
    
        From function void Foam::checkMethod(const Foam::fvMatrix<Type>&, const Foam::fvMatrix<Type>&, const char*) [with Type = Foam::Vector<double>]
        in file /home/dyfluid/OpenFOAM/OpenFOAM-6/src/finiteVolume/lnInclude/fvMatrix.C at line 1283.
    
    

    UEqn.H代码:

        fvVectorMatrix UEqn
        (
            fvm::ddt(rho, U)
          + fvm::div(rhoPhi, U)
          + turbulence->divDevRhoReff(rho, U)
         == fvOptions(U)//add this
        );
        UEqn.relax();
        fvOptions.constrain(UEqn);//add this
    
        if (pimple.momentumPredictor())
        {
            solve
            (
                UEqn
             ==
                fvc::reconstruct
                (
                    (
                      - ghf*fvc::snGrad(rho)
                      - fvc::snGrad(p_rgh)
                    ) * mesh.magSf()
                )
            );
    	fvOptions.correct(U);//add this
        }
    

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

    1 条回复 最后回复
  • M 离线
    M 离线
    merlinizlf
    写于 最后由 编辑
    #6

    对了,如果还有同伴也需要用到fvOptions的话,有一个网站推荐给大家:
    https://caefn.com/openfoam/fvoptions

    里面写了在算例中添加fvOptions的一些方法,希望对大家有帮助:xinxin:

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

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

    添加质量源项到alpha方程看起来倒是合理,但很容易越界,例如如果alpha=20怎么办?另外就是在rho方程上添加fvOptions,看起来更合理也不存在越界的问题。不过两种方法我都没测试过。只是第一感觉如此。你可以试试

    [U[1 -2 -2 0 0 0 0] ] == [U[0 1 -2 0 0 0 0] ]

    前面是rhoU后面是U,因此单位不统一

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

    M 1 条回复 最后回复
  • M 离线
    M 离线
    merlinizlf
    在 中回复了 李东岳 最后由 编辑
    #8

    @东岳 非常感谢老师的指点,已经成功编译了UEqn:xinxin:

        tmp<fvVectorMatrix> tUEqn//fvVectorMatrix UEqn
        (
            fvm::ddt(rho, U)
          + fvm::div(rhoPhi, U)
          + turbulence->divDevRhoReff(rho, U)
         ==
          fvOptions(rho,U)//add this
        );
        fvVectorMatrix& UEqn = tUEqn.ref();//add
        UEqn.relax();
        fvOptions.constrain(UEqn);//add this
    

    但是,还想请问一下老师,怎样才能在rho方程上添加fvOptions?rho不是只由alpha1和rho1,2决定吗?

    rho = alpha1*rho1 + alpha2*rho2;
    

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

    李东岳李 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 merlinizlf 最后由 编辑
    #9

    @merlinizlf 是的。另一个角度,连续性方程一般是跟压力方程有关。但是,在压力方程中添加密度的源项,这就变成了对压力产生影响,进一步影响速度,再影响质量。不清楚这个路子怎么样。所以。可能需要思考一下。目前我没有详细琢磨。

    你可以先试试在alpha方程上加,加小一点的数值,要不容易越界。

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

    M 1 条回复 最后回复
  • M 离线
    M 离线
    merlinizlf
    在 中回复了 李东岳 最后由 编辑
    #10

    @东岳 非常感谢老师:xinxin: ! :xiexie:
    就是这样迂回的话好像有些难,我还要再思考思考,再尝试尝试 :144:

    CFD苦手,能达到发散这一步就欣喜若狂了。。。

    1 条回复 最后回复

  • 登录

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