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



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


  • OpenFOAM教授

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



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



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


  • OpenFOAM副教授

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



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



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


  • OpenFOAM副教授

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



  • @cccrrryyy 嗯嗯嗯!感谢分享!


  • OpenFOAM副教授

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



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



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



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



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



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


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2