CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    求助:液池热毛细对流算例,已编译好求解器和算例,但就是和文献自编程序不一样

    OpenFOAM
    4
    11
    2692
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 麦迪文
      麦迪文 最后由 李东岳 编辑

      在提问题之前,首先给大家科普一下热毛细对流

      6811441d-4ce5-4d00-9b20-c0b51df30da6-image.png

      当液池两端的温度不一样的时候,一端热一端冷,在液体表面张力的作用下,会产生热毛细流动。热毛细流动是空间微重力环境下的主要自然对流形式。

      表面张力会随着温度变化,温度高的地方表面张力低,温度低的地方表面张力高,表面张力不均匀成为驱动微重力流动的因素。由于表面张力又称毛细力,所以这种表面张力温度效应驱动流动,又称为热毛细流动,或者叫做Marangoni对流。

      液池的形状是下面这样

      4afccb0c-b5f5-430e-926a-582bb4af10fa-image.png

      这个液池上表面是自由液面,其他是墙壁,内外环给不同的温度,使其在自由面造成热毛细对流的效果,我参考了这个文献

      https://doi.org/10.1016/j.ijheatmasstransfer.2018.10.016

      当时就被他自由面上的温度场分布震惊了,怎么是五彩斑斓状!!!

      7dd84862-fe53-4bc6-877c-e55fb9655303-image.png

      按他的设置,OPENFOAM出来的自由面温度场是这样

      31fda71e-4948-4873-a0a6-f0316eddf143-image.png

      而且我昧心的感觉我这个结果还挺合理的。。。。。
      更有厉害的能做出更不可思议的场分布,还能转起来

      http://dx.doi.org/10.1016/j.ijheatmasstransfer.2017.05.066

      6db4485e-0e99-470e-b570-16fcaf576d55-image.png

      CASE实现起来很简单,无重力,用pimple算法,多了一个上自由面速度随温度梯度变化的边界条件

      21d48cba-c29b-4e40-89ab-6219e67e0588-image.png

      三维网格是200 40 14

      d873e696-56b3-405e-bad1-aa2a491e8a02-image.png

      case文件:传不上,求解器:也传不上。。。我微信13842091526,感兴趣的想算一下的加我啊,8核几十分钟就出结果

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        液池热毛细对流算例,已编译好求解器和算例,但就是和文献自编程序不一样

        非常有意思的东西,具体什么对不上?

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

        CFD高性能服务器 http://dyfluid.com/servers.html

        麦迪文 1 条回复 最后回复 回复 引用
        • 麦迪文
          麦迪文 @李东岳 最后由 编辑

          @东岳 老师你看它自由面温度场一块一块的高低分明,我这努力了好几天,写出的边界条件它温度均匀的扩散出去9f4af203-80de-4d3c-8b31-ed5697730a00-image.png

          1 条回复 最后回复 回复 引用
          • 麦迪文
            麦迪文 最后由 李东岳 编辑

            这是按照文献给出的边界条件

            tmp<vectorField > marangoniFvPatchVectorField::snGrad() const
            {
            return this->patch().deltaCoeffs()*(*this - patchInternalField());
            }
            // Evaluate the field on the patch
            void marangoniFvPatchVectorField::evaluate()
            {
                //Info << "entering  marangoniFvPatchVectorField::evaluate()" << endl;
                if (!this->updated())
                {
            	//Info << "marangoniFvPatchVectorField::evaluate(): calling updatecoeffs" << endl;
                    this->updateCoeffs();
                }
            
                 vectorField nHat = this->patch().nf();
                 vectorField pif = this->patchInternalField();
                 scalarField deltas=this->patch().deltaCoeffs();
            
             	fvPatchField<vector> gradT =this->patch().lookupPatchField<volVectorField, vector>("gradT");
             	vectorField  gradT_internal = gradT.patchInternalField();
            	vectorField gradTplane= transform(I - sqr(nHat),gradT_internal);
             	vectorField pifplane= transform(I - sqr(nHat),pif);
             	fvPatchField<vector> gradC =this->patch().lookupPatchField<volVectorField, vector>("gradC");
             	vectorField  gradC_internal = gradC.patchInternalField();
             	vectorField gradCplane= transform(I - sqr(nHat),gradC_internal);
            
            	vectorField result=pifplane+(tmarangonicoeff_*gradTplane+cmarangonicoeff_*gradCplane)/deltas;
            
             	vectorField::operator=
             	    (
            	     result
             	     );
             
            
                transformFvPatchVectorField::evaluate();
            }
            
            1 条回复 最后回复 回复 引用
            • 麦迪文
              麦迪文 最后由 编辑

              哎我去,是不是应该用updatecoff隐式赋值边界条件

              1 条回复 最后回复 回复 引用
              • 李东岳
                李东岳 管理员 最后由 编辑

                信息量好大.. :xinlei:

                线上CFD课程开始报名:http://www.dyfluid.com/class.html

                CFD高性能服务器 http://dyfluid.com/servers.html

                1 条回复 最后回复 回复 引用
                • 麦迪文
                  麦迪文 最后由 编辑

                  虽然没人关注但是还是做下最近研究的总结,以备后来人作参考少走弯路,经多次验证比较,文献中图278f3d70-5b79-4a7c-8e59-fb889d36c092-image.png
                  可能为速度场,表面温度场怎么也出不来图中所示效果,代码有点小问题,不过不大总结完毕

                  D 1 条回复 最后回复 回复 引用
                  • D
                    dzw05 教授 @麦迪文 最后由 编辑

                    @麦迪文 文献竟然还有这种操作,给作者写个comment吧。

                    自主匠心,普惠仿真。

                    1 条回复 最后回复 回复 引用
                    • 麦迪文
                      麦迪文 最后由 编辑

                      近期在研究两相欧拉模型和做实验比较忙,稍后会把openfoam模拟的结果温度云图和速度云图传上来供大家分析下

                      L 1 条回复 最后回复 回复 引用
                      • L
                        LiuZhuang @麦迪文 最后由 编辑

                        @麦迪文 等着看云图

                        1 条回复 最后回复 回复 引用
                        • 麦迪文
                          麦迪文 最后由 编辑

                          捕获.PNG

                          1 条回复 最后回复 回复 引用
                          • First post
                            Last post