LES定义入口速度的问题(DSRFG方法)
-
大家好,最近遇到一个问题,我用了某种方法(DSRFG,Huang et al,2010)产生了入口风速,然后用openfoam中的timeVaryingMappedFixedValue作为入口的边界类型,把数据写在constant/boundaryData/inlet文件中,这样就可以读取数据了。但是这个边界类型,只能把数据定义在入口边界的各控制体的面中心上。其中有个offset选项,可以定义在平移后的一个界面上,但是这样的话,在入口处就没有风速了(不知道我这样理解对不对)。我现在想,能不能有什么方法,对入口边界面和入口边界的控制体中心同时定义速度。这样做的原因是,我发现,如果只是把速度定义在面上的话,那横风向和竖风向的脉动成分不能很好地传递进去。
还有一个常识问题,通过分析顺风向不同位置的脉动风功率谱,发现沿着顺风向,功率谱密度不断减小,这个应该是正常的吧(当然能量损失和采用的离散方式有关,但存在一定的损失应该符合物理现象吧)?具体就像这样,定义两个入口边界。不知道能否实现?
-
@xjwang 物理上这个问题是可以实现的,数值上应该就是怎么简化近似的问题。
-
-
@xjwang 如果想要对入口边界面和入口边界的控制体中心同时定义速度,那么你需要修改这个边界条件代码了。具体怎么做就是每一时间步,把这个边界上附着的控制体改成边界上的值,这个是可以改边界条件代码做到的。你应该做的是模拟大气边界层流动的工作?沿着下流平均风速和脉动风速都会被降低,地面的摩擦剪切是耗散主要来源。想要不要被耗散,要加驱动压力项 (driving pressure term)作为源项来维持能量。
-
@Vortex 感谢大佬回复!我是在模拟大气边界层流!我现在是平均风速能拟合地很好,但是脉动成分有所降低,尤其是垂直风向的spanwise和vertical方向,损失最为严重,但发现它们损失到一定程度后就不变了。这个压力项应该是顺风向的压力吧,我在两篇论文中看到过,是修改了求解算法,就是pisoFoam或者pimpleFoam这种,加了一个恒定的力。不知道这个压力项的大小怎么取值?能不能给一些参考?还有类似修改边界条件代码的,能不能也给一些参考?非常感谢您的回复!!!
-
@Vortex 上边说的损失到一定程度后不变不够准确,因为画在对数坐标中,看起来不那么明显。
-
@xjwang 我看到的文献一般是在顺风向全场加$u_*^2/\delta$,$\delta$是大气边界层高度也即计算域高度,至于为什么是这个形式,是为了让计算域加的合力等于地面摩擦力,你自己可以推一推。我入口是域前模拟生成的,这个驱动力项也是预前域时就确定,用的是SOWFA的ABLSolver求解器的办法,具体怎么操作你可以看看它的代码。
-
@Vortex 非常感谢!!!
-
@xjwang 朋友你好,我也遇到了同样的问题,采用LES计算,时变的速度入口数据导入后,随着非稳态进行,脉动速度在向下游传递过程中很快减弱至消失,不知是否已经解决?
-
@霜染丹枫 计算域是完全的矩形么?
-
@霜染丹枫 yes i have solved this problem. Firstly, which method are you using to generate the inflow? Is this method sensitive to the grid sizes?
Sorry for replying you in English because I don't have Chinese input in my desktop.
-
@李东岳 李老师好,计算域是完全的矩形,即三维槽道流。
-
@xjwang 感谢回复,我的湍流入口方法也是采用DSRFG方法(Huang et al,2010),速度入口边界,也是把脉动速度场定义在入口边界面上了,计算过程中通过监测不同轴向截面速度的等值线图,发现在入口附近速度场有小幅值脉动,在远离入口处速度场的脉动几乎消失(感觉和你说的沿着顺风向,脉动功率谱密度减小的问题类似)。而理想的结果是否应该是由于入口扰动的持续作用,在下游能一直维持较强脉动的湍流场。不知您当时是如何解决的?
-
@霜染丹枫 换了台电脑回复你^-^
能不能贴一下你不同位置的速度的紊流度以及功率谱的图片?
还有一个问题是,比如你的计算域顺风向长度是15,你目标结构应该放在5-8左右,这样紊流度等衰减都不是很大。
我之前犯的错是,入口的参数搞错了,紊流积分尺度这些设置错了。
以下是在公众号下边的留言:
抱歉在论坛上提问问题后没有及时更新后续。
很惭愧,这个问题后来我发现是参数设置错了,生成风场的参数是按照缩尺的参数选取的,而DSRFG这个方法,本来是对网格尺寸不敏感的,但因为参数选错了,所以导致了在入口处引起了divergence-free问题。至于后续问的那个沿顺风向紊流度减小的问题,确实是会减小,不过不是太过于明显,因为我错误选取了参数,导致顺风向的衰减程度特别大。之所以会问在两个面定义成inlet,是因为看过一篇文章,Kim, Y., Castro, I. P., & Xie, Z. T. (2013). Divergence-free turbulence inflow conditions for large-eddy simulations with incompressible flow solvers. Computers & Fluids, 84, 56-68.
看楼上有位同学或老师回复过这个问题,他用的CDRFG方法,这个方法是产生inhomogeneous的inflow的,所以在入口处不满足divergence-free,而且文章中感觉有一处错误(也许是我理解不够吧),所以就没有用这个方法。
在入口处加尖劈或者粗糙元,我个人觉得不太好控制想要的风场参数(如紊流积分尺度等),而且由此导致的网格加密会增加计算负担,虽然DSRFG方法也是很耗费计算资源。
-
@xjwang 辛苦辛苦^ ^,这是计算得到的瞬时速度等值线图,可以看出脉动速度在下游是衰减的(因为一直通过瞬时速度波动情况来观察下游湍流情况,不知这样判断是否有问题?)。另外关于您提到的湍流积分尺度参数,是指huang文章中说的turbulence integral length scales Lu/Lv/Lw么?我在想我是否也是这个问题导致的?
-
@xjwang 同时,我在DSRFG方法中采用的参数都是根据自己计算工况进行的设置,比如x,y,z坐标数据、湍流积分尺度l等,这是否可以理解为您指出的“因为参数选错了,而引起了divergence-free问题”?之前一直在网格和时间步长设置方面找原因,没有考虑过本身生成的速度场是否问题。呜呜0.0!
-
-
@李东岳 入口速度是在平均速度基础上加的扰动,这些扰动就是通过那个算法实现的,因此在每个时间步入口速度场的扰动时一直存在的。
-
@李东岳 这个不仅仅是流槽了,算是风洞。虽然边界条件会有影响,但是不太影响计算域中的一些地方。
-
@霜染丹枫 “根据自己的工况” 这句话,如果你的参数是从风洞试验中或者其他数据库中得到的,那应该没啥问题。不过我觉得,你貌似没有把紊流积分尺度等参数设置正确,一个比较快速的检查:你的网格尺寸是多少,你的紊流积分尺度是多少?看你发的那个图片,貌似是遇到了我之前那样的问题,脉动部分急剧减少。我现在手边没有我计算的图片,不过我的计算结果的瞬时速度场在整个计算域都能表现出明显的湍流特征。
-
@李东岳 李老师,请问那个公众号下边回复说用CDRFG方法的同学或老师注册了吗?能否邀请他一起讨论一下那个方法?我一直感觉那篇论文中有一个错误,给作者发邮件也没回复。
-
@xjwang 好像没有
-
@xjwang 感谢回复,我的计算域如图所示,几何尺寸:X=1.2m、Y=0.2m、Z=0.4m。展向和轴向为均匀网格。空气沿x轴正向进入,平均速度是1.2m/s。入口采用速度入口边界条件,出口为压力出口边界条件,展向是周期性边界条件(即Z方向),上部和底部为壁面,采用无滑移边界条件。三个方向网格节点:64X64X128,垂直壁面方向采用非均匀网格,首层网格高度△y=0.0001m,保证Yplus<1。目前程序中湍流积分尺度设置为Ls=0.014(大致估算的,目前看来是有问题的)。Huang文章说这个参数很重要,给了三种设置的方法,但是我一直没引起重视。。。。您这个参数是如何来设置的呢?谢谢!
-
后来他注册了,但是好像没来这里回复。
但是这种很难在三维槽道流内单纯凭这壁面保持湍流。你有没有试过添加扰动。
我是说初始internalField的扰动。
我看了一下Huang2010的文章,他们算的不是三维槽道流,里面包含障碍物,就不存在这个问题。但你那种三维槽道流很有可能有这个问题。
-
@李东岳 李老师,麻烦能说一下internalField的作用么,我不是很了解,谢谢
-
@霜染丹枫 Ls太小吧,你这个算例感觉设置的不是太正确。
题外话:
1.你的首层网格高度0.0001m,不知道你具体咋划分的网格,沿高度方向如果增长太快的话,应该会对计算结果有影像,而且你网格的三个方向的尺寸比例如果出现这种1:1:1000这种情况的话,也会影响你的计算结果。
2.不知道你是不是想摸你ABL, 如果是的话,上部设置成无滑移边界条件不太好吧。 -
@李东岳 internalField应该没啥影响,毕竟模拟时间比较长,初始条件可以忽略不计。我试过internalField是(0 0 0)和(U 0 0) 都没啥影响
-
@霜染丹枫 还有你说的那三种Ls的计算方式很重要,但这个是影响空间相关性的。这个参数不是自己凭空造出的,我是根据试验来确定的
-
-
像是这种速度波动越往后越少的,类似开始有湍流后来无湍流,我倒是完全可以理解的。
持续关注解决办法 -
@李东岳 对,这个可以理解,但是衰减太快就是有问题了,一般处理这种瞬态问题用的piso算法,会根据质量守恒去修正求解的速度,所以如果入口处不满足质量守恒,速度场会有很大的改变。
-
@xjwang 根据您的建议,我修改了湍流积分尺度,由于没有实验,这个量我是通过湍动能和耗散率来估算的。重新进行计算,目前能够看出下游流场表现出湍流状态。这个结果和您之前的计算发展趋势相似么,以说明我目前入口给定结果的正确性。
-
@李东岳 如李老师所言:“像是这种速度波动越往后越少的,类似开始有湍流后来无湍流”。我有个疑惑,采用中心差分格式的扩散项可以将扰动向四周传递,迎风格式的对流项具有迁移性,即可以将扰动向下游传递。从上面来看,入口的扰动应该是可以持续向下游传递的。如果几何轴向长度非常长的话,在很远的下游是不是也会保持一定湍流状态?还是由于壁面摩擦力及流体粘性对扰动有削减作用,在下游一直衰减甚至脉动全无,就是这种入口给定方法本身就会出现的现象呢?
-
这里是几点个人的看法:
1、DSRFG方法文章中,需要区分三维能量波谱与一维频谱的概念,下图DSRFG文章中公式(32)个人感觉是不能画等号的,因为表达的是不同维度的谱。DSRFG理论推导是生成满足三维能量谱的风场,CDRFG理论推导是生成满足一维频谱的风场。具体可搜索知网《基于傅里叶合成法的大气边界层脉动风场大涡模拟》(2018)文章中有相关阐述。
(引用:Huang S H, Li Q S, Wu J R. A general inflow turbulence generator for large eddy simulation[J]. Journal of Wind Engineering and Industrial Aerodynamics, 2010,98(10-11):600-617.)2、若采用von Karman频谱,von Karman频谱对频率的积分等于脉动动能,积分尺度Lu、Lv、Lw影响的是谱的峰值所对应的频率,对脉动动能的大小不产生影响。因此下面这个公式,利用了峰值频率的值来反推计算积分尺度。
(引用:庞加斌, 葛耀君, 陆烨. 大气边界层湍流积分尺度的分析方法[J]. 同济大学学报(自然科学版), 2002,30(5):622-626.)3、入口处生成的是满足目标频谱的脉动风场,根据已经发表的文章计算结果(见下图),LES总是会对入口处的脉动风过滤,最后的谱的形状在高频处总会衰减。根据频谱对频率的积分等于脉动动能,高频段被过滤,对应的脉动动能也会减小。
(引用:胡晓兵, 杨易. 基于NSRFG方法的标准地貌风场大涡模拟研究[J]. 工程力学, 2020,37(09):112-122.)4、个人一直有个2疑问:
(1)入口处的风场严格满足了零散度要求,然后在LES是否就能无条件自保持?这个观点有无被证明了?
(2)积分尺度到底物理意义是什么?之前论文有个帖子有讨论过turbulence lenth scale 求助感谢各位大佬指点迷津
-
- 个人感觉是能画等号的,当f=kU. CDRFG方法中,对于定义p和q的时候,直接代入了Su,Sv,Sw, 而且还说有个系数halved,但后来检察代码发现没有减半。还有一个就是CDRFG方法是用来生成inhomogeneous inflow的,虽然从原始的RFG(Smirnov)中说,这个方式在生成inhomogeneous inflow的时候也可以近似看做零散度,但从CDRFG方法那个计算k,p,q的过程来看,应该能造成divergence.个人感觉这个方法之所以很多人用,也许是因为他们把程序贴在了文章后边。不过这也只是我个人感觉,如果我有错误的地方,还请指出来!!!
- Lu,Lv,Lw虽然理论上来说不影响turbulence intensity,只是按你所说的那样,造成峰值的不同,但具体用到这个方法中,会有所影响。我们最近正完成了一篇论文讨论了这个情况,希望能快点见刊与大家分享。
- 这个问题比较常见,虽然理论上来说,LES是对“大”涡进行解析模拟,而“小涡”进行SGS模拟,但还是会对高频处那些本应该解析模拟的部分不能精确模拟。
4.严格说来,你看到的DSRFG方法并不是严格零散度,因为要考虑网格离散的影响。
-
你好同学,我最近再用NSRFG方法生成大气边界层风速入口,但不知道怎么将生成的风速数据导入openFoam中,看到你的这篇帖子后,尝试使用timeVaryingMappedFixedValue这个边界条件,但网上关于这个边界条件的用法几乎没有,而openFoam里有一个timeVaryingMappedFixedValue算例,但这个算例里U文件只有一步时间的数据,多步时间的格式不知道怎么写,请问你能告诉我U文件和point文件的格式吗,谢谢!我可以把我写的NSRFG方法分享出来,相互学习。
-
sunss邮件发给我了一些非常漂亮的数据图,应该是对算法这面很熟悉,现在卡在openfoam设置这里。你们多分享互相学习。
-
@sunss
这个设置不是很难 你可以看一下这个视频 以及Eddylicious这个软件的document,他们里边也是用的这个边界条件
https://www.bilibili.com/video/BV1CV411C7Jr -
@李东岳
李老师 突然想起来,您这个图是fluent的图还是openfoam的图?如果是openfoam的图能不能提示一下怎么画出来的?用的什么filter? -
我那个图是截取 @霜染丹枫 的图,看起来是Fluent
-
@李东岳
哦哦,因为知道您不用fluent 看到您贴出这个图 我还以为paraview的后处理也能这么画! -
@xjwang 朋友,是用fluent画的图。我后来更新了结果,在前面的帖子里放上了结果,你看下结果如何?
-
@xjwang 在 LES定义入口速度的问题(DSRFG方法) 中说:
@sunss
这个设置不是很难 你可以看一下这个视频 以及Eddylicious这个软件的document,他们里边也是用的这个边界条件
https://www.bilibili.com/video/BV1CV411C7Jr你说的这个视频和工具包,我之前都看了,没能找到解决方法。我简化一下问题,假设inlet面上只有四个点,分别是(1 1 0)(1 2 0)(2 1 0)(2 2 0),我要导入两个时间步的速度信息,也就是总共有八个速度的信息,那timeVaryingMappedFixedValue边界条件的point文件和U文件写成下面的形式行不行。
-
@霜染丹枫 在 LES定义入口速度的问题(DSRFG方法) 中说:
@李东岳 如李老师所言:“像是这种速度波动越往后越少的,类似开始有湍流后来无湍流”。我有个疑惑,采用中心差分格式的扩散项可以将扰动向四周传递,迎风格式的对流项具有迁移性,即可以将扰动向下游传递。从上面来看,入口的扰动应该是可以持续向下游传递的。如果几何轴向长度非常长的话,在很远的下游是不是也会保持一定湍流状态?还是由于壁面摩擦力及流体粘性对扰动有削减作用,在下游一直衰减甚至脉动全无,就是这种入口给定方法本身就会出现的现象呢?
湍流减少的现象应该是湍流生成方法不满足无散度条件,而像满足无散度条件ATSM-L这种方法下游湍流强度不仅不会减少,还会稍微增强。推荐你们去了解一下万嘉伟开发的一款湍流入口生成工具。https://nheri-simcenter.github.io/TinF-Documentation/examples/examples.html
-
@sunss
应该是在constant/boundaryData/inlet文件夹下边有一个points的文件,然后每一个时间步都是一个文件夹,其中包含一个U文件。比如说,我在inlet文件夹下边在terminal中输入ls,会显示:0 0.001 0.002 ...... points
而在每一个时间步文件夹下输入ls,比如在0.001文件夹下,会显示:
U
-
@sunss
文件格式应该是:
points:
.......................................................
(
(1 1 0)
(0 1 0)
(1 0 0)
(0 0 0)
)
...........................................................
U:
..........................................................
(
(三维速度向量)
(三维速度向量)
(三维速度向量)
(三维速度向量)
)
.....................................................
所以你的设置有两个问题,一个是标出了4或者8这种数量,这个需要删掉,一个是需要把速度分别存储在对应的文件夹下边,不能在一个文件中。还有那些openfoam的星号可以删掉哈哈 -
@霜染丹枫
不知道你想模拟什么,想和你确认一下是不是模拟ABL,没有得到回复,单凭一张瞬态的速度场图,没法判断你的模拟结果好与坏。 -
@xjwang 你好,我的研究不是ABL,属于槽道流,但是想用DSRFG这个方法生成湍流入口用于LES计算。
-
@sunss 感谢分享,但是根据huang2010论文中指出该方法严格保证了无散度条件,并且给出了证明过程。
-
@xjwang 在 LES定义入口速度的问题(DSRFG方法) 中说:
@sunss
文件格式应该是:
points:
.......................................................
(
(1 1 0)
(0 1 0)
(1 0 0)
(0 0 0)
)
...........................................................
U:
..........................................................
(
(三维速度向量)
(三维速度向量)
(三维速度向量)
(三维速度向量)
)
.....................................................
所以你的设置有两个问题,一个是标出了4或者8这种数量,这个需要删掉,一个是需要把速度分别存储在对应的文件夹下边,不能在一个文件中。还有那些openfoam的星号可以删掉哈哈多谢!已经成功导入风速数据。