[simpleFoam]、雷诺应力及湍流模型原理
-
雷诺应力确实有一部分包含在turbulence->divDevReff(U)这一项中,在OpenFoam中这一项称为有效雷诺应力,表达式如下
\begin{equation}
\mathbf R_\mathrm{eff} = \nu_\mathrm{eff} \left[ \nabla \overline{\mathbf u} + (\nabla \overline{\mathbf u})^\mathsf{T} - \frac{2}{3} (\nabla \cdot \overline{\mathbf u}) \mathbf I \right]
\end{equation}其中的$\nu_\mathrm{eff}=\nu + \nu_t$,$\nu_t$即为通过k-epsilon模型计算出的涡粘性系数。turbulence->divDevReff(U)在动量方程中,由此湍流模型在求解速度时发挥作用。
另外关于turbulence->divDevReff(U)这一项的调用,虽然此项在不可压求解器中,但如果采用线性涡粘的湍流模型,调用的是linearViscousStress 中的 divDevRhoReff(U)(可压缩也用这个),具体代码为:template<class BasicTurbulenceModel> Foam::tmp<Foam::fvVectorMatrix> Foam::linearViscousStress<BasicTurbulenceModel>::divDevRhoReff ( volVectorField& U ) const { return ( - fvc::div((this->alpha_*this->rho_*this->nuEff())*dev2(T(fvc::grad(U)))) - fvm::laplacian(this->alpha_*this->rho_*this->nuEff(), U) ); }
计算时根据括号中的量选择带入计算的是哪个速度。(其中负号是因为定义在系数矩阵等式的右边)
以上内容整理自OpenFOAM 中的不可压和可压 RANS 方程,网页内容非常详细,要是我早点看到能省不少麻烦 -
问题解决,
this->alpha_
的定义在template < class Alpha, class Rho, class BasicTurbulenceModel, class TransportModel > class TurbulenceModel : public BasicTurbulenceModel { public: typedef Alpha alphaField; typedef Rho rhoField; typedef TransportModel transportModel; protected: // Protected data const alphaField& alpha_; const transportModel& transport_; .......... }
这里的
alpha_
应该表示相分数。