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
36 帖子 13 发布者 26.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 桎 离线
    桎 离线
    桎梏
    在 中回复了 李东岳 最后由 编辑
    #9

    @东岳 如果用现存的动态接触角模型,那你的uTheta之类的是咋设置的,选用的文献的值么还是随机值

    1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    写于 最后由 编辑
    #10

    @桎梏 你把Kistler dynamic contact angle model 植入到openfoam中了么,我知道在fluent中用UDF怎么实现,正在研究怎么在OF中搞,求指导

    桎 fireztwF 2 条回复 最后回复
  • 桎 离线
    桎 离线
    桎梏
    在 中回复了 Peng 最后由 编辑
    #11

    @Peng 抱歉,回复晚了。我目前没在做这方面的内容,可能过一段时间才会考虑加入这个模型

    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 桎梏 最后由 编辑
    #12

    @桎梏 没事,我找到了相关的资料了,在研究,有问题再交流。

    分享如下:

    (1) 这里面是Edin Berberovic 编写的code:

    https://www.cfd-online.com/Forums/openfoam-solving/58337-openfoam141dev-new-implementation-dynamickistlergammacontactangle.html

    (2) 这篇文章附件的code,作者对Edin Berberovic 编写的code进行了更新,适用于新版本的openFoam: https://www.sciencedirect.com/science/article/pii/S2352711016300309

    code 地址:
    https://github.com/MahdiNabil/CFD-PC/tree/master/interThermalPhaseFoam/Libraries

    桎 1 条回复 最后回复
  • 桎 离线
    桎 离线
    桎梏
    在 中回复了 Peng 最后由 编辑
    #13

    @Peng 好东西!感谢分享!有问题互相交流!

    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 桎梏 最后由 编辑
    #14

    @桎梏 @东岳
    https://github.com/MahdiNabil/CFD-PC/tree/master/interThermalPhaseFoam/Libraries 里面的code 是基于OpenFOAM 2.4.0 的,在OpenFOAM v7 or OpenFOAM v1912 编译的时候,首先要删去 Allwmake.sh 里的 libso。

    然后编译还是会报如下的错误:

    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C: In member function ‘virtual Foam::tmp<Foam::Field<double> > Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField::theta(const fvPatchVectorField&, const fvsPatchVectorField&) const’:
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:148:38: error: ‘const class Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’ has no member named ‘dimensionedInternalField’
      148 |             << " of field " << this->dimensionedInternalField().name()
          |                                      ^~~~~~~~~~~~~~~~~~~~~~~~
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:149:37: error: ‘const class Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’ has no member named ‘dimensionedInternalField’
      149 |             << " in file " << this->dimensionedInternalField().objectPath()
          |                                     ^~~~~~~~~~~~~~~~~~~~~~~~
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C: In member function ‘virtual void Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField::write(Foam::Ostream&) const’:
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:242:27: error: no matching function for call to ‘writeEntry(const char [6], Foam::Ostream&)’
      242 |     writeEntry("value", os);
          |                           ^
    

    应该是版本不兼容引起的吧,请问如何修改,以使其和新版本的openFOAM兼容呢?

    相同的问题参见:
    https://bugs.openfoam.org/view.php?id=3098#bugnotes
    和
    https://www.cfd-online.com/Forums/openfoam-programming-development/168136-new-solver-two-phase-flows-phase-change-heat-transfer-2.html
    目前还没人回答。

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

    dimensionedInternalField已经被volScalarField::Internal替换,因此需要全部替换

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

    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 李东岳 最后由 编辑
    #16

    @东岳
    东岳老师,我把代码中的dimensionedInternalField() 替换成了volScalarField::Internal(),但还是报错 ‘Foam::volScalarField’ “is not a base of Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’。”

    代码替换:

    //   << " of field " << this->dimensionedInternalField().name()
          //   << " in file " << this->dimensionedInternalField().objectPath()
    
               << " of field " << this->volScalarField::Internal().name()
               << " in file " << this->volScalarField::Internal().objectPath()
    

    编译报错:

    error: ‘Foam::volScalarField’ {aka ‘Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>’} is not a base of ‘const Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’
      153 |             << " of field " << this->volScalarField::Internal().name()
          |                                                      ^~~~~~~~
    

    这个错误是因为基类缺少了啥或者少声明了什么变量么?
    新手入门,求老师指点一二,十分感谢! 如有需要我可以附上源文件。

    附详细代码块如下:

    // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
    
    tmp<scalarField> dynamicKistlerAlphaContactAngleFvPatchScalarField::theta
    (
        const fvPatchVectorField& Up,
        const fvsPatchVectorField& nHat
    ) const
    {
        //eb - Lookup and return the patchField of dynamic viscosity of mixture
        //     and surface tension
        if((muName_ != "muEffKistler") || (sigmaName_ != "sigmaKistler"))
        {
            FatalErrorIn
            (
                "dynamicKistlerAlphaContactAngleFvPatchScalarField"
            )   
                << " muEffKistler or sigma set inconsitently, muEffKistler = "
                << muName_ << ", sigmaKistler = " << sigmaName_ << '.' << nl
                << "    Set both muEffKistler and sigmaKistler according to the "
                << "definition of dynamicKistlerAlphaContactAngle"
                << "\n    on patch " << this->patch().name()
    
           //   << " of field " << this->dimensionedInternalField().name()
           //   << " in file " << this->dimensionedInternalField().objectPath()
    
                << " of field " << this->volScalarField::Internal().name()
                << " in file " << this->volScalarField::Internal().objectPath()
    
                << exit(FatalError);
        }
    

    详细报错:

    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C: In member function ‘virtual Foam::tmp<Foam::Field<double> > Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField::theta(const fvPatchVectorField&, const fvsPatchVectorField&) const’:
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:153:54: error: ‘Foam::volScalarField’ {aka ‘Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>’} is not a base of ‘const Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’
      153 |             << " of field " << this->volScalarField::Internal().name()
          |                                                      ^~~~~~~~
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:154:53: error: ‘Foam::volScalarField’ {aka ‘Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>’} is not a base of ‘const Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField’
      154 |             << " in file " << this->volScalarField::Internal().objectPath()
          |                                                     ^~~~~~~~
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C: In member function ‘virtual void Foam::dynamicKistlerAlphaContactAngleFvPatchScalarField::write(Foam::Ostream&) const’:
    dynamicKistlerAlphaContactAngle/dynamicKistlerAlphaContactAngleFvPatchScalarField.C:249:27: error: no matching function for call to ‘writeEntry(const char [6], Foam::Ostream&)’
      249 |     writeEntry("value", os);
    
    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #17
    FatalErrorIn
            (
                "dynamicKistlerAlphaContactAngleFvPatchScalarField"
            )   
                << " muEffKistler or sigma set inconsitently, muEffKistler = "
                << muName_ << ", sigmaKistler = " << sigmaName_ << '.' << nl
                << "    Set both muEffKistler and sigmaKistler according to the "
                << "definition of dynamicKistlerAlphaContactAngle"
                << "\n    on patch " << this->patch().name()
    
           //   << " of field " << this->dimensionedInternalField().name()
           //   << " in file " << this->dimensionedInternalField().objectPath()
    
                << " of field " << this->volScalarField::Internal().name()
                << " in file " << this->volScalarField::Internal().objectPath()
    
                << exit(FatalError);
    

    直接删掉

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

    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 李东岳 最后由 编辑
    #18

    @东岳 好的,先这样做吧,谢谢!

    X 1 条回复 最后回复
  • X 离线
    X 离线
    xinxinzhou1995
    在 中回复了 Peng 最后由 李东岳 编辑
    #19

    @Peng 你好啊,我也在用kistler动态接触角模型,参考的Edin的代码以及MahdiNabil的代码,我的求解器以及lib都编译通过了,但是在运算case的时候报错了,我想请问你遇到这个问题了吗?我用的版本是of4x

    *] --> FOAM FATAL ERROR: 
     request for volScalarField muEffKistler from objectRegistry region0 failed
     available objects of type volScalarField are
     
    * (
    * interfaceProperties:K
    * alpha.water
    * p_rgh
    * nu
    * nu1
    * nu2
    * alpha.air
    )
    
    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 xinxinzhou1995 最后由 编辑
    #20

    @xinxinzhou1995 我没有用这个版本额,我用的高版本的还是有问题,你的问题解决了吗?

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

    他这个问题是求解需要调用muEffKistler这个volScalarField,但是代码里并没有,因此报错。还是有代码部分的问题

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

    1 条回复 最后回复
  • X 离线
    X 离线
    xinxinzhou1995
    在 中回复了 Peng 最后由 编辑
    #22

    @Peng我的动态接触角模型在of4x和of7都是同一个问题,都是这个muEffkistler找不到,但是我的确是求解器和lib都编译通过了,我一直找不出原因。

    fireztwF 1 条回复 最后回复
  • fireztwF 离线
    fireztwF 离线
    fireztw
    在 中回复了 xinxinzhou1995 最后由 编辑
    #23

    @xinxinzhou1995 我也是编译成功了,但不知道边界条件里除了要给定前进和后退接触角,还有什么需要定义的吗?这个muName和sigmaName,以及muEffKistler和sigmaKistler的关系是什么样的呢,怎么给定呢?

    P 1 条回复 最后回复
  • fireztwF 离线
    fireztwF 离线
    fireztw
    在 中回复了 Peng 最后由 编辑
    #24

    @Peng 大神能否分享一下fluent 的udf实现方法,openfoam里我在低版本里可以用了(做了一些修改),非常感谢

    P 1 条回复 最后回复
  • P 离线
    P 离线
    Peng
    在 中回复了 fireztw 最后由 编辑
    #25

    @fireztw 在 动态接触角的问题 中说:

    @Peng 大神能否分享一下fluent 的udf实现方法,openfoam里我在低版本里可以用了(做了一些修改),非常感谢

    留个邮箱,发给你

    fireztwF P Y C P 7 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #26

    感谢分享!:146:

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

    1 条回复 最后回复
  • fireztwF 离线
    fireztwF 离线
    fireztw
    在 中回复了 Peng 最后由 编辑
    #27

    @Peng zhangtw2000@126.com
    非常感谢

    1 条回复 最后回复
  • P 离线
    P 离线
    penghui_tan
    在 中回复了 Peng 最后由 编辑
    #28

    @Peng 大神能不能也分享一下fluent中动态接触角 的udf实现方法给我,十分感谢。penghui0410@foxmail.com

    1 条回复 最后回复

  • 登录

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