vanDriestDelta构造的问题?



  • LES计算时,当delta使用vanDriest模型时,发现其构造函数中,构造了一个geometricDelta_的指针

    Foam::LESModels::vanDriestDelta::vanDriestDelta
    (
        const word& name,
        const turbulenceModel& turbulence,
        const dictionary& dict
    )
    :
        LESdelta(name, turbulence),
        geometricDelta_
        (
            LESdelta::New
            (
                IOobject::groupName("geometricDelta", turbulence.U().group()),
                turbulence,
                // Note: cannot use optionalSubDict - if no *Coeffs dict the
                // code will get stuck in a loop attempting to read the delta entry
                // - consider looking up "geometricDelta" instead of "delta"?
                dict.subDict(type() + "Coeffs")
            )
        ),
        kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)),
        Aplus_
        (
            dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
            (
                "Aplus",
                26.0
            )
        ),
        Cdelta_
        (
            dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<scalar>
            (
                "Cdelta",
                0.158
            )
        ),
        calcInterval_
        (
            dict.optionalSubDict(type() + "Coeffs").lookupOrDefault<label>
            (
                "calcInterval",
                1
            )
        )
    {
        delta_ = geometricDelta_();
    }
    
    

    这个geometricDelta_用到了LESdelta::New,似乎又是一个runtime selection选择机制,但是我不知道IOobject::groupName("geometricDelta", turbulence.U().group()),是什么意思。
    然后我在tutorials中找到了使用vanDriest的范例:

    vanDriestCoeffs
        {
            delta           cubeRootVol;
            cubeRootVolCoeffs
            {
                deltaCoeff      1;
            }
    }
    

    也许geometricDelta_又构造了一个LESDelta类,并且采用了cubeRootVol,不知道我猜的对不对。
    另外delta_ = geometricDelta_()到底是什么操作呢?
    Foam::LESModels::vanDriestDelta::calcDelta()这个函数,是对近壁面delta进行修正,但是在vanDriestDelta的构造函数中没有看到使用calcDelta()这个函数,那到底是在什么地方修正的delta呢?


  • OpenFOAM副教授

    建议参考这个
    https://www.openfoam.com/documentation/guides/latest/doc/guide-turbulence-les-delta-vandriest.html
    OpenFOAM里面的LESdelta是基于geometricDelta_的,geometricDelta_(delta关键字后面的那个,比如cubeRootVol)是纯粹与几何有关的一个量,而真正的LESdelta是建立在其之上的。这样的表述实际上更精确,所以才被设计成了两个东西,我猜的。


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2