wallShearStress函数量纲问题咨询
-
各位老师们好,我在用OpenFOAM-2.4.0版本中,需要提取可压缩流动中壁面的剪切应力,查阅了后处理程序wallShearStress,其中有一点我感到很困惑。
剪切应力场定义如下:
volVectorField wallShearStress ( IOobject ( "wallShearStress", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedVector ( "wallShearStress", sqr(dimLength)/sqr(dimTime), vector::zero ) );
其中规定量纲为$m^2/s^2$,然而在wallShearStress的计算中
在calcIncompressible函数中,是读取的$devReff()$函数
const volSymmTensorField Reff(model->devReff()); forAll(wallShearStress.boundaryField(), patchI) { wallShearStress.boundaryField()[patchI] = ( -mesh.Sf().boundaryField()[patchI] /mesh.magSf().boundaryField()[patchI] ) & Reff.boundaryField()[patchI]; }
而在calcCompressible函数中,是读取的$devRhoReff()$函数
const volSymmTensorField Reff(model->devRhoReff()); forAll(wallShearStress.boundaryField(), patchI) { wallShearStress.boundaryField()[patchI] = ( -mesh.Sf().boundaryField()[patchI] /mesh.magSf().boundaryField()[patchI] ) & Reff.boundaryField()[patchI]; }
这两个函数不是应该差了$\rho$么,为什么输入的wallShearStress场的量纲在不可压缩和可压缩下是固定的呢?我也看了其他几个版本,发现都是一样的代码。
这块没有特别理解,如果我要计算可压缩流动的剪切应力,是直接取它的值,还是在该场的基础上乘以密度呢?希望老师们能帮我解答疑惑,不胜感激!
-
@bestucan 在 wallShearStress函数量纲问题咨询 中说:
一个是可压缩的,一个是不可压缩的。
不可压缩的状况下$\rho$是个常量,方程两边同除以$\rho$。好像是压力项变成$\frac{p}{\rho}$。其他项就没有$\rho$了。
可压缩的话,方程中各项按说本身就带$\rho$,我猜的
看这个
嗯嗯,东岳老师那个帖子我也看过。但是就是上面代码写到的,如果按照上面的公式看的话,可压缩流中剪切应力计算得到的结果应该要比不可压缩中结果多乘一个$\rho$。但是wallShearStress函数中输出场的量纲是固定的(不可压缩公式中计算得到的剪切应力量纲),我就觉得很奇怪……到底对于可压缩流,如果用这个代码计算,得到的结果是量纲给错了,数值是正确的,还是是除以了一个密度后计算的结果