关于CreateTurbulenceFieldsLES疑问
-
想计算LES下的耗散率,搜到cfdonline的一个程序CreateTurbulenceFieldsLES,是这个createTurbulenceFieldsLES2.zip ,这个是cfdonline链接,里面对于耗散率的计算非常简单,贴下代码
volScalarField epsilon ( IOobject ( "epsilon", runTime.timeName(), mesh,IOobject::NO_READ, IOobject::NO_WRITE ), turbulence->epsilon() );
对于这个不是很理解,箭头应该是指针吧,但是我不能很好的找到计算公式,貌似是采用的层流下的计算方式,因为在这个程序另一个文件createFields.H下有这么一处代码:
singlePhaseTransportModel laminarTransport(U, phi); autoPtr<incompressible::turbulenceModel> turbulence ( incompressible::turbulenceModel::New(U, phi, laminarTransport) );
然后我找了下层流laminar.C下计算的方法
tmp<volScalarField> laminar::epsilon() const { return tmp<volScalarField> ( new volScalarField ( IOobject ( "epsilon", runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), mesh_, dimensionedScalar ( "epsilon", sqr(U_.dimensions())/dimTime, 0.0 ) ) ); }
两个具体问题,我找的laminar.C这个是不是计算epsilon的公式,第二个问题层流下计算耗散率epsilon的公式为什么是这样的,按照定义应该是下图这样的,Eij就是指耗散率,应该是脉动速度的乘积,希望得到解答,谢谢!
-
箭头是对指针的成员的引用,找到这个类的定义:turbulenceModel.H
epsilon()函数声明在205行,是个虚函数,所以在 turbulenceModel.C 里没有定义,而是在使用其作为模板创建新类的时候再各自定义
在上面那个窗口里搜 epsilon() 函数:
看你的情况是用的哪种定义,其实里面 epsilon() 函数定义大差不差,
你用的 LES,咋找上层流的了,你找的那个确实是层流的对于 epsilon() 的一个实现,在我发的那个图片里也有脉动速度都用上了,那应该不是层流了,速度分成脉动速度和平均速度这就是用了湍流模型了