Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 湍流模型里面如何输出动态系数

湍流模型里面如何输出动态系数

已定时 已固定 已锁定 已移动 OpenFOAM
6 帖子 4 发布者 4.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 小 离线
    小 离线
    小考拉
    写于2020年2月3日 09:30 最后由 编辑
    #1

    目前想输出湍流模型中的系数,以Dynamic Smagorinsky-Lilly模型为例,在该模型中,如果想输出模型中的动态系数Cs^2怎么办呢?

    Dynamic Smagorinsky-Lilly.C文件中输出的动态系数CD(Cs^2)代码如下

    volScalarField dynamicSmagorinsky::cD
    (
        const volSymmTensorField& D
    ) const
    {
        tmp<volSymmTensorField> LL = 
    	dev(filter_(sqr(U())) - (sqr(filter_(U()))));//sqr returns the outer product of U, the deviatoric part is explicitly expressed, while the isotropic part is in the pressure term
    
        const volSymmTensorField MM
        (
            sqr(delta())*(filter_(mag(D)*(D)) - 4*mag(filter_(D))*filter_(D))
        );
    
        // Locally averaging MMMM on cell faces
        volScalarField MMMM = fvc::average(magSqr(MM));
    
        MMMM.max(VSMALL);
    
        // Performing local average on cell faces on return
        return 0.5*fvc::average(LL && MM)/MMMM;
    }
    

    网上有人说 在湍流模型中定义一个系数(即CD,表达式同上),并利用swak4Foam输出,具体应该怎么操作呢?

    请好心朋友指点一下

    1 条回复 最后回复
  • 小 离线
    小 离线
    小考拉
    写于2020年2月7日 03:41 最后由 编辑
    #2

    目前进行了一些尝试,但编译过程中存在一定的问题,请大家指点一下

    下面是试验的湍流模型的.C部分程序,模型的系数为CSW,想输出每个时刻CSW的场,在代码后面加了IOobject的代码

    // * * * * * * * * * * * * * Private Member Functions  * * * *  * * * * //
    
    void DCMM::updateSubGridScaleFields
    (
        const volTensorField& gradU
    )
    {
      
        nuSgs_ = sqr(delta())*(C(gradU).component(vector::X)*sqrt(2.0)*mag(S(gradU))*S(gradU)
        nuSgs_.correctBoundaryConditions();
    }
    
    dimensionedVector  DCMM::C
    (
        const volTensorField& gradU
    ) const
    {
    
    // Sij,Mij,Omegaij,Pij and Lij 
    const volSymmTensorField S = symm(gradU);    
    
    const volSymmTensorField M = 4*sqr(delta())*sqrt(2.0)*mag(filter_(S))*filter_(S)-sqr(delta())*filter_(sqrt(2.0)*mag(S)*S);
    
    const volTensorField O = -skew(gradU);    
    
    const volTensorField N = 4*sqr(delta())*((filter_(S)&filter_(O))-(filter_(O)&filter_(S))-dev(filter_(S)&filter_(S)));
    
    const volTensorField P = 4*sqr(delta())*((filter_(O)&(filter_(S)&filter_(S)))
    
    const volSymmTensorField L = dev(filter_(sqr(U())) - (sqr(filter_(U()))));
    
    const volScalarField MM = M&&M;
    
    const volScalarField MN = M&&N;
    
    const volScalarField MP = M&&P;
    
    const volScalarField NM = N&&M;
    
    const volScalarField NN = N&&N;
    
    const volScalarField NP = N&&P;
    
    const volScalarField PM = P&&M;
    
    const volScalarField PN = P&&N;
    
    const volScalarField PP = P&&P;
    
    const volScalarField ML = M&&L;
    
    const volScalarField NL = N&&L;
    
    const volScalarField PL = P&&L;
    
    const volScalarField CS1 = (ML*NN*PP - ML*NP*PN - MN*NL*PP + MN*NP*PL + MP*NL*PN - MP*NN*PL);
    
    const volScalarField CS2 = (MM*NN*PP - MM*NP*PN - MN*NM*PP + MN*NP*PM + MP*NM*PN - MP*NN*PM);
    
    const dimensionedScalar CSW = CS1.weightedAverage(mesh_.V())/max(CS2.weightedAverage(mesh_.V()),small2_);
    
     return vector(1,0,0)*CSW
    
     CSW
        (
            IOobject
            (
                "CSW",
                runTime_.timeName(),
                mesh_,
                IOobject::MUST_READ,
                IOobject::AUTO_WRITE
            ),
            mesh_
        );
    }
    

    编译之后,报错如下:

    DCMM.C:134:5: error: no match for call to ‘(const dimensionedScalar {aka const Foam::dimensioned<double>}) (Foam::IOobject, const Foam::fvMesh&)’
         );
    

    通过error所说,目前感觉是不是应该 对CSW添加一些定义 或者声明呢?

    但自己目前对代码不是很熟悉,还请哪位朋友指点一下 或者 提供一些类似的代码参考呢?

    S 1 条回复 最后回复 2020年2月7日 07:15
  • S 离线
    S 离线
    Samuel-Tu
    在 2020年2月7日 07:15 中回复了 小考拉 最后由 编辑
    #3

    @小考拉 我一般是在求解器代码里写输出程序例如pisoFoam.C里加输出程序,没在湍流模型里面写过。你可以试试能不能在求解器程序里输出

    C 1 条回复 最后回复 2020年2月7日 22:58
  • C 离线
    C 离线
    cxzhmg
    在 2020年2月7日 22:58 中回复了 Samuel-Tu 最后由 编辑
    #4

    @Samuel-Tu 求解器里面用info输出吗?有办法能输出到单独的文件里面吗?

    S 1 条回复 最后回复 2020年2月8日 00:23
  • S 离线
    S 离线
    Samuel-Tu
    在 2020年2月8日 00:23 中回复了 cxzhmg 最后由 编辑
    #5

    @cxzhmg 搜我的贴子,OF文件读写

    1 条回复 最后回复
  • 李 离线
    李 离线
    李东岳 管理员
    写于2022年7月23日 00:45 最后由 编辑
    #6

    https://www.cfd-china.com/topic/4790 看文章最后

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
2020年2月3日 09:30

5/6

2020年2月8日 00:23

未读 1
2022年7月23日 00:45
  • 登录

  • 登录或注册以进行搜索。
5 / 6
  • 第一个帖子
    5/6
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]