请问各位大佬怎么对瞬态问题的湍动能取一定时间内的平均值呢?
-
本人模拟瞬态问题,利用sample得出的都是每个时间步的瞬时数据,我想对湍动能等数据取一定时间内的统计平均,应该怎么做呢?求各位大佬给点建议,万分感谢
-
@strive_DUT 我们做MHD一般会监测湍动能(TKE)或者横向速度团湍动能(TTKE)可以作为判断稳定的判据。但是取场平均的话一般都是从开始计算取的,并不是等到稳定开始在取。
-
@strive_DUT paraView取的平均是你保存下来的那些时间点的平均吧?除非你每个时间步都保存了,不然一定要用fieldAverage。取平均肯定要取稳定之后的呀,除非你计算一开始很快就进入了稳定状态,不过这种一般很少吧。稳定状态找几个监测点看一些物理量,速度、压力什么的,还可以监测场里面一些物理量的最大最小值。这些每个时间步都可以输出,比较方便的。
-
@cccrrryyy 谢谢回复!是的,我的时间步长去的很小,而且保存的时间步比较密集,我试试和fieldAverage有没有区别。因为我还要取不同线上的数据,如果用sample的话,也是要指定取的点数吧,所以感觉用paraview方便一些。不过瞬态问题取平均到底是取稳定之后还是开始就取,还是不太清楚,跟楼上大佬说法不同
-
@strive_DUT 具体问题具体分析,有的算例可能很快就稳定了,那从一开始取平均并且取的时间够长也没太大问题。实际上找监测点和监测场内最大最小值这些是很重要的,你需要先判断是否已经稳定。严格来说取平均也不应该只做一次,在进入稳定之后应该分别取等长的时间段做平均,并且比较两个平均值是否有区别,没有区别才说明这个算例是真正的稳定了。这一点现在做的好像不多了,但前面确定稳定这一步是肯定要做的。
-
@cccrrryyy 嗯嗯嗯!感谢分享!
-
@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了
-
@strive_DUT 测试了一下,foam-extend 4.1版本下可以指定具体时间段,但是同样的代码在foam-extend 4.0版本中仍然是计算整个时间内的值
-
@strive_DUT 可以看看这个求解器,然后自己改造一下pimpleTKEBudgetFoam
-
@strive_DUT 你编译一下在自己的算例试一下,把场平均打开,然后把averagingProperties添加到constant文件夹。