请教大家关于wallGrad(U)和grad(U)的问题
-
大家好,
不知道哪位大佬有使用过之前版本的wallGrad(U)和现在的grad(U),有问题想请教一下!
之前的wallGrad(U)的代码是:wallGradU.boundaryField()[patchi] =-U.boundaryField()[patchi].snGrad();
这里会返回一个vector。snGrad()计算的是垂直于壁面表面的gradient,就是说这里如果壁面是弯曲的,他会把角度计算进去,如图。然后计算返回的三个分量应该是速度在X,Y, Z方向的分速度的各自的梯度。
https://www.openfoam.com/documentation/cpp-guide/html/schemes-sngrad-schematic.png
但是在现在的版本里,如果type wallGrad(U),
会出现:In the new openfoam 5 wallGradU has been superseded by the postProcess utility: postProcess -func 'grad(U)
然后这里就不明白了,grad(U)和wallGrad(U)有关系么??
grad(U)返回一个tensor,是对整个场进行操作,返回的9个分量应该是类似于这样的:
按我的理解他是在对速度的三个方向分量 在每个global 的x, y, z方向求地图,也就是说对我的曲面,如果我想从grad(U) 得到wallGrad(U),还需要自己把角度算进去??
虽然我们还是可以再植入wallGrad(U)的code进去,可是只是想不通为啥OF要把他删掉?? 还说可以用grad(U),完全不是一回事儿啊!
不知道我想的对不对,还请各位前辈指导!
谢谢大家!