关于omega_和omega_()中的括号
-
各位好!
我看到了东岳老师之前在CFD online上的一篇post:call a tmp formal value without a parentheses?,我最近在研究k-omega SST模型时也发现了类似的问题。
例如在定义epsilonByk时,用到的是有括号的omega_():template<class BasicEddyViscosityModel> tmp<volScalarField::Internal> kOmegaSSTBase<BasicEddyViscosityModel>::epsilonByk ( const volScalarField& F1, const volTensorField& gradU ) const { return betaStar_*omega_(); }
而在定义分段函数F2时用到的是omega_:
template<class BasicEddyViscosityModel> tmp<volScalarField> kOmegaSSTBase<BasicEddyViscosityModel>::F2() const { tmp<volScalarField> arg2 = min ( max ( (scalar(2)/betaStar_)*sqrt(k_)/(omega_*y_), scalar(500)*(this->mu()/this->rho_)/(sqr(y_)*omega_) ), scalar(100) ); return tanh(sqr(arg2)); }
我试着用Info将omega_和omega_()都输出到log文件中,得到的是完全一样的体标量场。但是有时如果删去原有的括号或是加上括号会引起报错。说明omega_和omega_()具有同样的值,但是类型不同。不知道这个括号是否也是由于<tmp>类所引起的?