在质量守恒方程中添加源项对湍动能的影响



  • 各位老师好,最近遇到了一个湍流方面的问题,由于之前所有的计算都是在层流的条件下进行,实在没有经验,所以想请教一下大家。

    我使用的是interFoam,计算二相不可压缩流。之前我在压力方程中添加了一个随时间变化的源项(源强度的变化趋势类似于简谐运动),用于在计算域中制造波浪,进而研究波浪与浮体之间的相互作用过程。方程大概这样子:
    sss.jpg

    我的程序在层流下运行没有问题,可以实现想要的功能,但是在湍流情况下出现问题(目前我用的是k-e模型)。

    计算时此源项位于某一区域Omega内,该区域称之为源区域。这个区域里速度的散度不为零,类似于一个水泵,向计算域中输入/抽取水体。当采用湍流模型计算时,由于源区域附近的速度梯度比较大,源区附近的湍动能显著增加。湍动能增加后,源周围的速度场受到影响呈现混乱的状态,进而使湍动能更加混乱,导致源区域附近的自由表面完全混乱。且随着时间的增加,混乱程度加剧,最后计算崩溃。

    我想请教的问题就是,是否添加了质量源一定会产生这种问题?如何能够削弱源区域附近的湍动能过度增长?是通过设置还是修改方程?(我试过了修改fvscheme与fvsolution里面的各种设置,但问题依旧存在)因为感兴趣的地方在波浪与结构物相互作用,因此希望通过质量源可以产生简谐波而不是使源区域附近的自由表面高度混乱。

    此外,还有一个问题,按我的理解,如果采用速度输入的方法,在边界上输入一个周期性变化的速度,那么是不是和添加质量源类似,边界附近的速度梯度也应该不小。这时候会不会出现类似的问题呢?(我看很多文章都是这么造波的,很好奇)

    之前没怎么涉及过湍流模型的使用,如果问的问题过于简单希望大家不要嫌弃,谢谢:papa:



  • 各位老师,我今天有了重大发现:

    (1)之前出现问题的算例使用的是overset网格,当不用overset网格时没有问题;
    (2)overset网格在单核运行时湍动能的过度增长消失了!

    等我周一把算例的对比图传上来,这个结果我是真没想到,到时候希望有大佬来指点一下迷津。。。



  • @CFDngu 是不是写了什么代码没有在多核时注意reduce..



  • @Samuel-Tu在质量守恒方程中添加源项对湍动能的影响 中说:

    @CFDngu 是不是写了什么代码没有在多核时注意reduce..

    我不是很了解MPI,但目前初步看来,不是reduce的问题,应该是不同区域交界面上的问题。在交界面上速度场貌似有点不连续,可能就是这样引起了扰动。详细的我明天去实验室再对比下。



  • 我进行了一些测试,结果如下:

    我分别在串行和并行的前提下对算例进行了模拟,所有设置完全一致。采用isoAdvector捕捉的自由面,且算例中采用了overset网格来计算漂浮结构物的运动。图A和B分别是串行和并行前提下,t=2.5s时的结果速度场,图C和D是湍动能。明显看出,在t=2.5s时,质量源的强度还不是很大,源附近的速度梯度也不大,但是采用并行计算的结果已经出现了不正常的湍动能增加。

    图A:
    t=2.5s.jpg

    图B:
    t=2.5s.jpg

    图C:
    k_t=2.5s.jpg

    图D:
    k_t=2.5s.jpg

    随着计算的进行,差距愈发明显。图E和F分别为t=3.5s时串行和并行得到的速度场,图G和H为湍动能。可以看出,t=3.5s时,计算结果已经被严重干扰。

    图E:
    t=3.5s.jpg

    图F:
    t=3.5s.jpg

    图G:
    k_t=3.5s.jpg

    图H:
    k_t=3.5s.jpg

    如果我把D图放大,透明度调低,可以发现湍动能的扰动出现在不同子计算域的交界处:
    k_t=2.5s_detail.jpg

    另外,还有个比较诡异的地方,我的算例在并行时分为8个子区域,若采用simple(8 1 1)分块,计算无法进行。只有采用scotch才可以。我也尝试了不同的分块方法(数量),但并无明显改善。如果不同子区域的交接面不穿过质量源,那么湍动能的扰动出现的时间稍微有滞后,但最终还是会出现。质量源方面的代码是我自己写的,如果不用overset网格,只是进行造波的话又一切正常可以并行。

    总的来说,貌似这个问题是由于并行引起的,并且这个影响主要在湍动能上:并行的层流计算也没有问题。请问有没有大佬遇到过类似的问题呢?另外我感觉OF中overset网格貌似不太适合并行?我不得不采用串行计算后,感觉速度没有慢很多。换言之,并行好像并没有让overset网格的算例计算速度增加多少。

    对了,版本是v1906,湍流模型是k-e,引入了larson和furman在2018年JFM上的文章以解决湍流模型在层流区域高估湍流强度的问题(貌似这个对结果没啥影响)。

    求大佬解惑,谢谢大家。:xinlei:



  • 以前用OF自带的interpolation,发现用并行也有点问题,当插值点在交接面的时候就会出错。不知道你这个是不是质量源在交接面时出了问题


  • OpenFOAM副教授

    @CFDngu 如果真的是并行方面的问题感觉只能靠多试了,比如不同的湍流模型,甚至不同版本的OpenFOAM。看起来是一个就算最后能靠自己解决但得掉几层皮的问题,全部精力都花在这种问题上不太值得。可以提交问题给官方看看有没有回复。

    好奇湍流粘度和分子粘度的比值是什么样的,这个参数比较能直观的反应计算出来的湍流,单看k或者epsilon可能有误导。正常情况下RANS这个比值大概在几十上百左右。还有一个问题,从放大的D图看,源项的区域覆盖了大概5个网格,会不会是网格的问题?



  • @cccrrryyy
    老实说,对于波浪-结构物相互作用的问题是否采用湍流模型、采用哪个模型我一直拿不准。按照我的理解,造波和波浪在常水深下传播时,雷诺数(或粘度比)应该非常小。只有波浪与结构物相互作用过程中,发生波浪抨击、波浪破碎时,貌似才需要用湍流模型来模拟。这也是最初我不解的地方,因为我觉得源附近不应该有这么大的湍动能,而结构物附近的湍动能才应该相对大些。

    另外您说的网格问题是什么意思?我的算例中源区确实一般占据4-5个网格(x方向),但是我的网格不复杂,如下图
    11.jpg

    多说一句,按照我个人的经验,与波浪相关的问题,采用层流模型的结果貌似一般也不会与实验差太多。

    可能我不是很懂,但是并行这个问题,真的是玄学。。:xinlei:



  • 确实我看波浪用层流比较多。



  • @Samuel-Tu

    对的


  • OpenFOAM副教授

    @CFDngu 我不做波浪所以不清楚一般大家都怎么做,所以我觉得看一下湍流粘度比值会有帮助。RANS计算的话,对一般的流动而言这个比值应该较大,如果比值很小那说明其实没有太多湍流的作用。也许真的像你们说的,其实用层流就没问题。

    网格我是想问你有没有做过无关性分析之类的,另外这种场里面突然有一个小点突然算出来很大的量以至于发散,有可能是网格正好碰到了什么奇怪的数值点。当然究其根本肯定是程序哪里有什么问题,但有时候换一套网格有可能(极小概率的哈)能避开这个问题。



  • @cccrrryyy

    行我再考虑下,谢谢


Log in to reply
 

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