关于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初学,扒扒公式。



  • 《A Thorough Description Of How Wall Functions Are Implemented In OpenFOAM》一文2.6节描述了nutWallFunction,nutAtmRoughWallFunction中nutw公式与之相同,其他量有改变,我再看看。


Log in to reply