开源软件就是这点不行,没有一个完整的文档告诉你这里是怎么怎么处理的,一副“反正代码都公开了你想看什么自己看就行了”的姿态,直接写出来多省事。
现在我遇到问题了,需要彻底了解一下OpenFOAM中的wall function是怎么处理的,主要包括:
- 公式?
- 为什么有那么多种类的wall function?(nutWallFunction,nutkWallFunction,nutLowReWallFunction,etc)
- 为什么nut这个变量不仅在内部场上有值,而且在边界上也有值?边界上这些值是做什么用的?
- 看起来wall function是通过修改nut完成的,那么nut的哪些部分是turbulence model预测出来的,哪些部分是wall function规定的?
- 为什么当壁面网格不够细的时候,算出来的
都偏小呢?【尚未解决】
我大概要花1小时的时间,把这些东西总结一下。我相信这些问题对于大佬来说都是很基础的东西。
主要参考文献:
http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2016/FangqingLiu/openfoamFinal.pdfwww.tfd.chalmers.se- 公式
所有wall function的基础都是根据这个图,Law of the wall - Wikipedia 维基上解释得很好了。基本公式就是:
在log-law region (
在viscous sub-layer (
这些大家都懂,我需要知道的是OpenFOAM是怎么把这些公式套代码里进去的。
很显然,OpenFOAM不是直接对最靠近壁面节点上的速度直接动手的,因为我在用OpenFOAM的时候从来没有在速度变量U上加过wall function,都是对nut,k,epsilon这些东西加,所以OpenFOAM肯定对基础的公式做了一些魔改,把原本应该对速度U做出的修改变动到其他变量上去了。至于这样做的原因,可能是技术上的原因,我不太清楚,知道的麻烦在评论里说一声。
2. 基础公式的变形
这里举两个例子,一个是V2-f models -- CFD-Wiki, the free CFD reference
一个是K-omega models -- CFD-Wiki, the free CFD reference
2.1. V2-f model
V2-f模型是一个类似k-epsilon的模型,但V2-f中加入了对low-Reynolds number的修正,这样在计算的时候就可以不加wall function了。(不加wall function?那还举这个例子做什么?)
在viscous sub-layer (
这个公式就是wall function在viscous sub-layer中的那部分。我们现在要做的就是把这个公式带入V2-f model去化简,这样就会消去参数,得到主要几个变量在viscous sub-layer区域的直接形式。这个过程请看下面这张图:
上图左边是V2-f model的一般形式,右边是一般形式在viscous sub-layer中的简化。
根据右边的简化,我们可以得到几个主要变量
同样的,在log-law region,根据现有的对数法则,加上若干假设,我们也可以得到一套壁函数: