k壁面函数没有考虑一个网格多个边界面?
-
补充一下问题2:在这篇知乎最后一个评论印子斐说:“k(注:应该说的是第一层网格体心的k)比较难给,of和fluent都采用给定tke方程里的production,在求解过程中自动得到k的值”。很疑惑是如何做到的。
-
(1)对使用k的壁面函数有一个比较疑惑的地方是,kLowReWallFunction.C中是定义
updateCoeff()
来计算kw的,然而在kEpsilon.C文件里面根本找不到
k使用了这个函数来计算kw,也就是根本没计算k
。所以设置kqRWallFunction和kLowReWallFunction,看起来都没有区别,因为我暂时没有找到在哪里调用了
。。而与之相对的是epsilon和G都使用了updateCoeff来更新离壁面第一层网格中心的值。所以我怀疑离壁面第一层网格的k根本没用
壁面函数,而是直接靠解方程计算出来
。我的一个猜想是,kEpsilon模型本身是为对数区设计的,使用这个模型,就默认第一层网格中心处于对数区,而在对数区,常规做法是不设置k的,而只计算epsilon和G,并且epsilon和G满足平衡条件,在WALL边界处默认设置了k的法向梯度为零(这似乎就默认了使用kqRWallFuntion)。所以在kEpsilon.C里面并没有调用k的updateCoeff()进行计算,(不知到印博士是不是这个意思),是靠直接求解方程得到k,而只对epsilon和G使用壁面函数。
(2)油管上的fluidmechanical101对此有些视频,里面有提到k在对数区和粘性区的计算,公式和kLowReWallFunction对应,但是还是那个问题,这个计算是靠updateCoeffs()调用的,而没有发现在其他地方有使用。另外,这个函数计算的值是储存在边界面上的,而非网格中心。epsilon在计算的过程中也放在了边界面上,但用了求和平均,最后还是为了算出第一层网格中心的epsilon值。而kw并没有求和平均
,在放到网格中心去,所以现在不清楚把k值放在边界面上
的目的是什么。我另一个猜想是,是不是在组成k方程的时候用了边界的值,相当于把这个算出来的值当做边界条件
了,可能是放入矩阵系数
,也可能是放到等号右边的b
去了。