CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    请问各位大佬怎么对瞬态问题的湍动能取一定时间内的平均值呢?

    OpenFOAM
    5
    21
    3025
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • strive_DUT
      strive_DUT 最后由 编辑

      本人模拟瞬态问题,利用sample得出的都是每个时间步的瞬时数据,我想对湍动能等数据取一定时间内的统计平均,应该怎么做呢?求各位大佬给点建议,万分感谢:xiexie:

      1 条回复 最后回复 回复 引用
      • X
        xpqiu 教授 最后由 编辑

        用 fieldAverage 这个 functionObject 可以做到。timeStart 参数控制开始平均的时间,timeEnd 控制结束的时间,其他参数可以参考代码带的说明,在 src/functionObjects/fields/fieldAverage

        strive_DUT 2 条回复 最后回复 回复 引用
        • strive_DUT
          strive_DUT @xpqiu 最后由 编辑

          @xpqiu 嗯嗯嗯!多谢多谢!还有种方法:通过paraview后处理也可以取平均场。不过还有个问题想请教一下:瞬态问题的时均场取整个时间步内的还是应该取稳定后的呢,主要是稳定状态不太好判断:chouchou:

          一颗橙子 C 2 条回复 最后回复 回复 引用
          • 一颗橙子
            一颗橙子 @strive_DUT 最后由 编辑

            @strive_DUT 我们做MHD一般会监测湍动能(TKE)或者横向速度团湍动能(TTKE)可以作为判断稳定的判据。但是取场平均的话一般都是从开始计算取的,并不是等到稳定开始在取。

            七情六欲之中,食欲最为凶残。

            strive_DUT 1 条回复 最后回复 回复 引用
            • C
              cccrrryyy 教授 @strive_DUT 最后由 编辑

              @strive_DUT paraView取的平均是你保存下来的那些时间点的平均吧?除非你每个时间步都保存了,不然一定要用fieldAverage。取平均肯定要取稳定之后的呀,除非你计算一开始很快就进入了稳定状态,不过这种一般很少吧。稳定状态找几个监测点看一些物理量,速度、压力什么的,还可以监测场里面一些物理量的最大最小值。这些每个时间步都可以输出,比较方便的。

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

              strive_DUT 1 条回复 最后回复 回复 引用
              • strive_DUT
                strive_DUT @一颗橙子 最后由 编辑

                @一颗橙子 谢谢谢谢!我也觉得是从计算开始取值,不过好像和楼下的说法不太一样

                C 一颗橙子 2 条回复 最后回复 回复 引用
                • strive_DUT
                  strive_DUT @cccrrryyy 最后由 编辑

                  @cccrrryyy 谢谢回复!是的,我的时间步长去的很小,而且保存的时间步比较密集,我试试和fieldAverage有没有区别。因为我还要取不同线上的数据,如果用sample的话,也是要指定取的点数吧,所以感觉用paraview方便一些。不过瞬态问题取平均到底是取稳定之后还是开始就取,还是不太清楚,跟楼上大佬说法不同:chigua:

                  C 1 条回复 最后回复 回复 引用
                  • C
                    cccrrryyy 教授 @strive_DUT 最后由 编辑

                    @strive_DUT 具体问题具体分析,有的算例可能很快就稳定了,那从一开始取平均并且取的时间够长也没太大问题。实际上找监测点和监测场内最大最小值这些是很重要的,你需要先判断是否已经稳定。严格来说取平均也不应该只做一次,在进入稳定之后应该分别取等长的时间段做平均,并且比较两个平均值是否有区别,没有区别才说明这个算例是真正的稳定了。这一点现在做的好像不多了,但前面确定稳定这一步是肯定要做的。

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

                    strive_DUT 1 条回复 最后回复 回复 引用
                    • strive_DUT
                      strive_DUT @cccrrryyy 最后由 编辑

                      @cccrrryyy 嗯嗯嗯!感谢分享!

                      1 条回复 最后回复 回复 引用
                      • C
                        cccrrryyy 教授 @strive_DUT 最后由 编辑

                        @strive_DUT fieldAverage是对全场做平均的呀,你可以指定平均的开始和停止时间,以及对哪些量做平均。得到平均场之后随便怎么取数据都可以。时间步保存的密集也不会每一步都保存了吧?fieldAverage是每算一步就会加上新得到的量再除以总的时间步数,是绝对精确的。如果你是比如说每隔几步保存了一个数据,然后paraview做平均得到的结果和用fieldAverage一样,那只能说明场的变化频率较慢,或者说你的时间步长取得确实足够小。这也会是个比较重要的发现。

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

                        strive_DUT 1 条回复 最后回复 回复 引用
                        • strive_DUT
                          strive_DUT @cccrrryyy 最后由 编辑

                          @cccrrryyy 嗯嗯嗯,多谢多谢!我来用fieldAverage试试,与paraview处理的结果比较一下!

                          1 条回复 最后回复 回复 引用
                          • 一颗橙子
                            一颗橙子 @strive_DUT 最后由 编辑

                            @strive_DUT 我觉的这个大佬说的对的 ,我当初也想这样,就是计算稳定开始取场平均用的也是fieldAverage,可是让我导师白眼了,让我从0开始取平均。不过fieldAverage应该是在controlDict里面设置好边运行边输出结果的,最后你的时间文件下会生成一个UMean PMean这样的,如果你已经计算完了的话就不能用fieldAverage回过头再去处理数据了吧

                            七情六欲之中,食欲最为凶残。

                            strive_DUT 1 条回复 最后回复 回复 引用
                            • strive_DUT
                              strive_DUT @一颗橙子 最后由 编辑

                              @一颗橙子 fieldAverage运行的时候进行比较好,如果计算已经结束,可以用execFlowFunctionObjects来执行,只是,这样的运行只能利用输出到文件的数据来进行计算了。
                              参考:http://xiaopingqiu.github.io/2015/04/12/fieldAverage/

                              一颗橙子 1 条回复 最后回复 回复 引用
                              • 一颗橙子
                                一颗橙子 @strive_DUT 最后由 编辑

                                @strive_DUT 就是说算完了 还能用fieldAverage是吧 学到了,我一直以为计算结束了就不能fieldAverage了

                                七情六欲之中,食欲最为凶残。

                                strive_DUT 1 条回复 最后回复 回复 引用
                                • strive_DUT
                                  strive_DUT @一颗橙子 最后由 编辑

                                  @一颗橙子 是的,不过平均结果应该是不如运行时直接进行平均好

                                  1 条回复 最后回复 回复 引用
                                  • strive_DUT
                                    strive_DUT @xpqiu 最后由 编辑

                                    @xpqiu 您好!我按照您说的timeStart 和timeEnd设置了开始和结束时间,但是计算出的时间步文件依然是整个时间内都在计算平均场,是我哪里设置有问题吗?我用的是foam-extend 4.0,还是说这个版本和OpenFOAM设置不用?

                                    strive_DUT 1 条回复 最后回复 回复 引用
                                    • strive_DUT
                                      strive_DUT @strive_DUT 最后由 编辑

                                      @strive_DUT 测试了一下,foam-extend 4.1版本下可以指定具体时间段,但是同样的代码在foam-extend 4.0版本中仍然是计算整个时间内的值

                                      V 1 条回复 最后回复 回复 引用
                                      • V
                                        veen @strive_DUT 最后由 编辑

                                        @strive_DUT 可以看看这个求解器,然后自己改造一下pimpleTKEBudgetFoam

                                        strive_DUT 1 条回复 最后回复 回复 引用
                                        • strive_DUT
                                          strive_DUT @veen 最后由 编辑

                                          @veen 感谢分享!看到了averagingproperties文件,但是好像没有算例:chouchou:

                                          V 1 条回复 最后回复 回复 引用
                                          • V
                                            veen @strive_DUT 最后由 编辑

                                            @strive_DUT 你编译一下在自己的算例试一下,把场平均打开,然后把averagingProperties添加到constant文件夹。

                                            strive_DUT 1 条回复 最后回复 回复 引用
                                            • strive_DUT
                                              strive_DUT @veen 最后由 编辑

                                              @veen 嗯嗯!我试试

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