关于nutkAtmRoughWallFunction中nutw公式的疑问
-
文件来源:atmosphericModels/derivedFvPatchFields/nutkAtmRoughWallFunction
头文件描述:Description This boundary condition provides a turbulent kinematic viscosity for atmospheric velocity profiles. It is desinged to be used in conjunction with the atmBoundaryLayerInletVelocity boundary condition. The values are calculated using: \f[ U = frac{U_f}{K} ln(\frac{z + z_0}{z_0}) \f] where \vartable U_f | frictional velocity K | Von Karman's constant z_0 | surface roughness length z | vertical co-ordinate \endvartable
程序代码:
tmp<scalarField> nutkAtmRoughWallFunctionFvPatchScalarField::calcNut() const { const label patchi = patch().index(); const turbulenceModel& turbModel = db().lookupObject<turbulenceModel> ( IOobject::groupName ( turbulenceModel::propertiesName, internalField().group() ) ); const scalarField& y = turbModel.y()[patchi]; const tmp<volScalarField> tk = turbModel.k(); const volScalarField& k = tk(); const tmp<scalarField> tnuw = turbModel.nu(patchi); const scalarField& nuw = tnuw(); const scalar Cmu25 = pow025(Cmu_); tmp<scalarField> tnutw(new scalarField(*this)); scalarField& nutw = tnutw.ref(); forAll(nutw, facei) { label celli = patch().faceCells()[facei]; scalar uStar = Cmu25*sqrt(k[celli]); scalar yPlus = uStar*y[facei]/nuw[facei]; scalar Edash = (y[facei] + z0_[facei])/z0_[facei]; nutw[facei] = nuw[facei]*(yPlus*kappa_/log(max(Edash, 1+1e-4)) - 1); if (debug) { Info<< "yPlus = " << yPlus << ", Edash = " << Edash << ", nutw = " << nutw[facei] << endl; } } return tnutw; }
疑问:头文件描述中并未展示公式的来源,故无从得知该壁面函数的推导过程,更无法获知该壁面函数的适用条件。
求教:哪位大神知道这个壁面函数的来源吗?
备注:OpenFOAM初学,扒扒公式。