版权声明:本文为博主原创文章,网络精神,欢迎转载。如果转载,请注明出处。 https://blog.csdn.net/zhangyl03/article/details/85598451
动量方程有许多种形式。本文以rhoPimpleFoam为例子进行说明。
rhoPimpleFoam/UEqn.h内容如下:
文件内容
tmp<fvVectorMatrix> UEqn
(
fvm::ddt(rho, U) (I)
+ fvm::div(phi, U) (II)
+ MRF.DDt(rho, U) (III)
+ turbulence -> divDevReff(U) (IV)
==
fvOptions(rho, U) (V)
)
其中,(I)为非稳态项;(II)为对流项;(III)为MRF造成的附加修正;(IV)为应力张量;(V)用于处理fvOptions文件夹中的附加源项。
我们主要关注turbulence->divDevReff(U)函数。(如果是可压缩流体,那么这个函数就是turbulence->divDevRhoReff(U))
turbulence->divDevReff(U)是什么
类的名称是turbulence,该类基于turbulenceModel类,并从imcompressibleTurbulenceModel类中衍生出来。turbulence类调用了函数divDevReff(U)。该函数内容如下:
tmp<fvVectorMatrix> laminar::divDevReff(volVectorField& U) const
{
return
(
- fvm::laplacian(nuEff(), U)
- fvc::div(nuEff()*dev(T(fvc::grad(U))))
);
}
在此函数中存在运动粘度nu,暗示此方程为一不可压缩方程。其次,fvm代表隐式,fvc代表显式。此外,还调用了一个新函数dev()。
新函数dev()
dev()内容为:
template<class Cmpt>
inline Tensor<Cmt dev(const Tensor<Cmpt>& t>
{
return t - SphericalTensor<Cmpt>::oneThirdsI*tr(t);
}