Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    openfoam添加湍流入口方法?

    OpenFOAM
    7
    38
    7246
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dyb
      dyb last edited by

      请教各位老师,有没有在openfoam中加入湍流入口条件的方法,

      1 Reply Last reply Reply Quote
      • C
        cccrrryyy 教授 last edited by 李东岳

        这个问题挺好,希望我的回答能抛砖引玉。

        openfoam.org版本有turbulentInlet,是白噪声,原则上来讲做出来的湍流不真实,因为没有所谓的相关性;openfoam.com版本的有turbulentDFSEMInlet(https://www.openfoam.com/documentation/guides/latest/doc/guide-bcs-inlet-velocity-dfsem.html ),属于合成类型的湍流入口,应该比较真实。后面这个我个人没用过,不知道好不好用。

        如果需要另外的代码,参照Eugene de Villiers的毕业论文(The Potential of Large Eddy Simulation for the
        Modeling of Wall Bounded Flows),里面有专门讲到处理湍流入口。他是在平均场上添加了人为扰动,这些扰动是经过特殊设计的,经过一小段时间就可以发展成完全发展的湍流。这个人应该是开发OpenFOAM的课题组出来的,所以他提出的方式应该比较靠谱。相关的代码他在cfd-online上公布了,暂时找不到了- -

        还有一个是LEMOS程序包里的inflowGenerator。代码在这里,https://github.com/LEMOS-Rostock/LEMOS-2.4.x/tree/master/libLEMOS-2.4.x/boundaryConditions/inflowGenerator 。这个类似于合成类型,我看了代码,应该就是在入口的平面上一直有大大小小的涡穿过。

        我一直在用inflowGenerator,但是因为我主要做射流,而射流里面湍流的产生、保持和发展主要还是靠速度梯度,所以可能不同的湍流入口条件不会太影响最终结果。我试过turbulentInlet,也确实和inflowGenerator算出来的差别不大,但对你来说可能不是这样。

        I don't want to survive, I want to thrive.

        dyb Z 3 Replies Last reply Reply Quote
        • dyb
          dyb last edited by

          谢谢老师,我先尝试一下

          1 Reply Last reply Reply Quote
          • dyb
            dyb @cccrrryyy last edited by

            @cccrrryyy 老师,您好,这个LEMOS程序包里的inflowGenerator您是安装在那个版本的,我试了好几种办法都没安装成功。第二个问题:这个湍流入口湍流度能不能确定呢?

            1 Reply Last reply Reply Quote
            • C
              cccrrryyy 教授 last edited by

              1、我装在4.x上,它自己写的应该是可以装在2.3.x或者2.4.x上。我只编译了程序包里的这个边界条件,别的都没编译。你是怎么编译的,错误提示是什么呀?

              2、入口湍流没法儿确定,是你自己给的,我给的5%,然后根据这个算出来它需要的那个雷诺应力。

              I don't want to survive, I want to thrive.

              星 dyb S 4 Replies Last reply Reply Quote
              • 星
                星星星星晴 last edited by

                这有一个of所有内置的边界条件的介绍,你看看说不准哪个就满足你的要求,自己拼一个。。
                加油
                :xiezuoye: :xiezuoye:
                http://www.nextfoam.co.kr/lib/download.php?idx=135228&sid=235c1d3fc28364657dbb43ccfe025b25

                在写博士毕业论文,寻找postdoc或者职位中~
                m.sui20@foxmail.com

                dyb 2 Replies Last reply Reply Quote
                • 星
                  星星星星晴 @cccrrryyy last edited by

                  @cccrrryyy 基于of4.1

                  在写博士毕业论文,寻找postdoc或者职位中~
                  m.sui20@foxmail.com

                  1 Reply Last reply Reply Quote
                  • dyb
                    dyb @cccrrryyy last edited by

                    @cccrrryyy 谢谢老师,我试试

                    1 Reply Last reply Reply Quote
                    • dyb
                      dyb @星星星星晴 last edited by

                      @星星星星晴 谢谢老师,我试试

                      1 Reply Last reply Reply Quote
                      • dyb
                        dyb @cccrrryyy last edited by 李东岳

                        @cccrrryyy 老师您好,我编译出错是这样的

                        boundaryConditions/inflowGenerator/decayingVorton.C: In constructor ‘Foam::decayingVorton::decayingVorton(Foam::scalar, const vector&, const vector&, Foam::scalar)’:
                        boundaryConditions/inflowGenerator/decayingVorton.C:63:27: **error**: ‘class Foam::Random’ has no member named ‘vector’
                        vector omg = 2*ranGen.vector01() - pTraits<vector>::one;```
                        code_text
                        
                        C 1 Reply Last reply Reply Quote
                        • dyb
                          dyb @星星星星晴 last edited by

                          @星星星星晴 您好,您这边有没有关于OpenFoam 求解器详细介绍的资料呢?谢谢您

                          星 1 Reply Last reply Reply Quote
                          • 星
                            星星星星晴 @dyb last edited by

                            @dyb 没有,你可以google一下

                            在写博士毕业论文,寻找postdoc或者职位中~
                            m.sui20@foxmail.com

                            1 Reply Last reply Reply Quote
                            • C
                              cccrrryyy 教授 @dyb last edited by

                              @dyb 这个提示你的Foam::Random类里面没有叫做vector的函数或者参数,你需要搜一下源代码了。我记得我编译的时候没这个问题,不过我用的是4.x。可能不同版本之间它改了名字,一般这种随机数产生器里面肯定会有叫做什么vector之类的函数给你调用,比如这个出错误提示里面的ranGen.vector01(),我猜大概率是产生一个0到1之间的随机数?

                              I don't want to survive, I want to thrive.

                              1 Reply Last reply Reply Quote
                              • dyb
                                dyb last edited by

                                问题找到了,低版本的Random和高版本的有区别,但是,我不知道怎么 改

                                1 Reply Last reply Reply Quote
                                • C
                                  cccrrryyy 教授 last edited by

                                  你看看它哪里用到了这个vector函数,搞清楚用这个是想实现什么,然后在你现有OpenFOAM里面的随机数产生器找一下实现同样功能的函数。当然了,前提是你现有的OpenFOAM里面确实包含了他要用到的功能,这个我没法百分百确定,但这种涡方法里面产生随机数大概率就是调用一个函数然后产生一个0到1之间的随机数。

                                  或者更直接点的,这个湍流入口好像是针对2.3.x(不一定准确)开发的吧,你直接找到2.3.x的源码,看一下这个湍流入口调用的是2.3.x版本里面的哪个函数。这样你就知道在你的版本下应该调用什么函数了。

                                  I don't want to survive, I want to thrive.

                                  1 Reply Last reply Reply Quote
                                  • S
                                    sjlouie91 @cccrrryyy last edited by

                                    @cccrrryyy 请问一下,你在安装到OF4时是直接应用的他们的代码还是修改后才可以在新版本上编译的?

                                    C 1 Reply Last reply Reply Quote
                                    • C
                                      cccrrryyy 教授 @sjlouie91 last edited by

                                      @sjlouie91 可能改过吧,不记得了。即使是改过应该也就是很小的地方改了一下,按照编译时候出现的错误提示改的,没有额外的东西。

                                      I don't want to survive, I want to thrive.

                                      1 Reply Last reply Reply Quote
                                      • dyb
                                        dyb @cccrrryyy last edited by

                                        @cccrrryyy 老师,您好,您这边有InflowGenerator的算例吗,这个值我不知道怎么设置

                                        C 1 Reply Last reply Reply Quote
                                        • C
                                          cccrrryyy 教授 @dyb last edited by

                                          @dyb 好久不登录了- -它需要的就是速度、长度尺度和雷诺应力。简单的话速度你给个均一值,长度尺度取水力直径的10%,雷诺应力(RField)我一般都按照 k epsilon 里面 k 的算法(3/2*(refU*turbulentIntensity)^2,turbulentIntensity取个百分之五啥的),RField格式是 uniform (Rxx Rxy Rxz Ryy Ryz Rzz),我一般就把算出来的这个值给Rxx Ryy Rzz。这个雷诺应力的顺序你自己再查一下,应该是这样的。

                                          边界条件的设定其实没有很重要,大致差不多就行,比如长度尺度我看有人取水力直径的7%的,turbulentIntensity取到百分之二十的。雷诺应力,严格来说其他分量也应该有值,但我一直就给Rxx Ryy Rzz好像也没啥问题。

                                          这个边界条件只是给一个扰动,真正的湍流应该是靠你场里面的流动产生,所以在边界条件设置上不要过于纠结具体的数值。

                                          I don't want to survive, I want to thrive.

                                          dyb 2 Replies Last reply Reply Quote
                                          • dyb
                                            dyb @cccrrryyy last edited by

                                            @cccrrryyy 谢谢老师

                                            1 Reply Last reply Reply Quote
                                            • dyb
                                              dyb @cccrrryyy last edited by

                                              @cccrrryyy 老师,这个速度可不可以给定一的速度梯度

                                              1 Reply Last reply Reply Quote
                                              • C
                                                cccrrryyy 教授 last edited by

                                                给速度梯度是什么意思?

                                                I don't want to survive, I want to thrive.

                                                dyb 1 Reply Last reply Reply Quote
                                                • dyb
                                                  dyb @cccrrryyy last edited by

                                                  @cccrrryyy 我的入口是大气边界,有一个风廓线,入口速度沿着高度方向有个速度梯度,按指数变化

                                                  C 1 Reply Last reply Reply Quote
                                                  • C
                                                    cccrrryyy 教授 @dyb last edited by

                                                    @dyb 那就是速度有一个profile?我一般的做法是直接把这个profile用fixedValue赋值到每个cell上。这个需要你先用writeCellCentres命令导出每个边界的坐标,然后找到入口对应的坐标。我一般拿到这些值后用MATLAB根据位置坐标把速度值赋过去。

                                                    OpenFOAM是有codedFixedValue这种东西的,就可以直接给一个profile的,这个应该操作比较容易。

                                                    I don't want to survive, I want to thrive.

                                                    dyb 1 Reply Last reply Reply Quote
                                                    • dyb
                                                      dyb @cccrrryyy last edited by

                                                      @cccrrryyy 在open foam中atmBoundaryLayerInletVelocity这个边界是带有风廓线,而InflowGenerator只有扰流没有风廓线,如果这两个边界可以编译到一起用作入口是非常不错。
                                                      atmBoundaryLayerInletVelocity这个边界的源码在OpenFOAM-2.4.0\src\turbulenceModels\incompressible\RAS\derivedFvPatchFields\atmBoundaryLayerInletVelocity这个位置,我虽然在用openfoam但是我不懂编程,我解决不了这个问题![替代文字](f5dc51f4-7198-4535-a263-a361d9761264-image.png 图片地址)
                                                      非常感谢老师的解答,

                                                      星 1 Reply Last reply Reply Quote
                                                      • 星
                                                        星星星星晴 @dyb last edited by

                                                        @dyb 和你说一个更硬核的方法,对进口的每个cell进行赋值 你可以参照这个,这个方法最大的问题就是你改变一次网格就要重新赋值。但是当你在为边界条件搞得头疼不已,就用这个吧

                                                        http://www.cfd-china.com/topic/2089/分享-搬运-自定义非均匀inlet-u

                                                        在写博士毕业论文,寻找postdoc或者职位中~
                                                        m.sui20@foxmail.com

                                                        dyb C 3 Replies Last reply Reply Quote
                                                        • dyb
                                                          dyb @星星星星晴 last edited by

                                                          @星星星星晴 谢谢老师

                                                          1 Reply Last reply Reply Quote
                                                          • C
                                                            cccrrryyy 教授 @星星星星晴 last edited by

                                                            @星星星星晴 我上面回复的做法跟你这个一样,你这个很详细~我觉得这样自由度更高一些,实际上写好一个赋值速度的程序之后可以一直用,很快很方便。

                                                            I don't want to survive, I want to thrive.

                                                            dyb 1 Reply Last reply Reply Quote
                                                            • dyb
                                                              dyb @cccrrryyy last edited by

                                                              @cccrrryyy atmBoundaryLayerInletVelocity这个就是一个可赋值的,这是他生成的场很方便,就是不懂怎把这个入口碧边界和InflowGenerator入口边界结合起来,6249a7c8-01ec-441e-b3c3-83d8758e1713-image.png

                                                              C 1 Reply Last reply Reply Quote
                                                              • C
                                                                cccrrryyy 教授 @dyb last edited by

                                                                @dyb 把两个结合起来肯定是有办法的,就相当于自己写一个边界条件了。但是我感觉这样需要的代码工作量可能很大,因为两部分代码里面都包含一些实际上你不想要管的东西,比如什么构造函数啊之类的,还要去好好的想每个类里面哪些数据和函数应该做成protected,哪些做成public之类的,种种问题。除非你是一个编程高手很熟悉这些东西,不然真的可能工作量太大了。实际上对inflowGenerator来说你就是需要给一个速度的profile,我觉得这个profile你按照之前那个post里面的方法去给就好了,根据位置去确定每个cell的速度是多少的时候你用atmBoundaryLayerInletVelocity里面提到的那个公式即可。

                                                                I don't want to survive, I want to thrive.

                                                                dyb 1 Reply Last reply Reply Quote
                                                                • dyb
                                                                  dyb @cccrrryyy last edited by

                                                                  @cccrrryyy 谢谢老师

                                                                  1 Reply Last reply Reply Quote
                                                                  • dyb
                                                                    dyb @星星星星晴 last edited by

                                                                    @星星星星晴 谢谢老师,我按照老师的方法已经弄出来了

                                                                    1 Reply Last reply Reply Quote
                                                                    • Z
                                                                      zxx @cccrrryyy last edited by

                                                                      @cccrrryyy https:Eugene de Villiers的扰动在这里//github.com/wyldckat/perturbU

                                                                      C 1 Reply Last reply Reply Quote
                                                                      • C
                                                                        cccrrryyy 教授 @zxx last edited by

                                                                        @zxx 感谢!

                                                                        I don't want to survive, I want to thrive.

                                                                        1 Reply Last reply Reply Quote
                                                                        • 浪
                                                                          浪迹天大 last edited by

                                                                          我把代码移植到OF-上了,并附上了我的算例以供参考:
                                                                          https://github.com/ZhangYanTJU/boundaryConditions

                                                                          OpenFOAM 学习交流:https://openfoam.top

                                                                          浪 dyb 2 Replies Last reply Reply Quote
                                                                          • 浪
                                                                            浪迹天大 @浪迹天大 last edited by

                                                                            @浪迹天大 在 openfoam添加湍流入口方法? 中说:

                                                                            我把代码移植到OF-上了,并附上了我的算例以供参考:
                                                                            https://github.com/ZhangYanTJU/boundaryConditions

                                                                            少打了一个字。。。OF-7

                                                                            OpenFOAM 学习交流:https://openfoam.top

                                                                            1 Reply Last reply Reply Quote
                                                                            • dyb
                                                                              dyb @浪迹天大 last edited by

                                                                              @浪迹天大 您好老师,有没有关于LeMOS的参数设置的计算方法,或者文献,感谢老师

                                                                              1 Reply Last reply Reply Quote
                                                                              • yhdthu
                                                                                yhdthu 讲师 last edited by

                                                                                我看到DFSEM入口有bug?

                                                                                讨论地址:https://www.cfd-online.com/Forums/openfoam-solving/177711-turbulentdfseminlet.html

                                                                                有问题的是11式,本来是个无量纲参数,根号出来其实有量纲,不知有人测试过没?

                                                                                3144cc40-c082-465a-ba6e-3dd716368ec8-image.png

                                                                                长风破浪会有时,直挂云帆济沧海

                                                                                1 Reply Last reply Reply Quote
                                                                                • First post
                                                                                  Last post

                                                                                CFD中文网 | 东岳流体 | 京ICP备15017992号-2
                                                                                论坛登录问题反馈可联系 li.dy@dyfluid.com