buoyantFoam水库计算



  • 请问大家有用buoyantPimpleFoam算过Johnson水库水温动力学算例吗?这个水库的工况是:初始充满21.44°C的水,在入口处以固定速度0.014m/s进16.67°C的冷水,出水口自由出流。模拟近28万个网格。
    x-y平面:
    ce58960e-6883-4250-ade9-b11255e28ccc-image.png
    x-z平面:
    183c45da-bbd7-4eca-9d8a-628385a000be-image.png
    顶面为自由液面,设置成滑移边界条件,采用buoyantkEpsilon模型,但是计算出来一开始感觉流速场就不合理了(图为水平流速和总流速)。
    f651de5d-9336-43b5-973f-734a41098709-image.png
    68a136ef-7a59-4c59-bd57-0e62a12fde06-image.png
    条件设置如下,请问哪里有问题?

        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        inlet
        {
            type               fixedValue;
            value              uniform (0.014 0 0);
        }
        outlet
        {
           type                slip;
        }
        walls
        {
            type               fixedValue;
            value              uniform (0 0 0);
        }
    
        outletwater
        {
            type            inletOutlet;
            inletValue      uniform (0 0 0);
            value           $internalField;
        }
    }
    
    // ************************************************************************* //
    
    
    
    
        object      p_rgh;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [1 -1 -2 0 0 0 0];
    
    internalField   uniform 1e5;
    
    boundaryField
    {
        walls
        {
            type            fixedFluxPressure;
            value           uniform 1e5;
        }
    
        inlet
        {
            type            fixedFluxPressure;
            value           uniform 1e5;
        }
    
        outletwater
        {
             type            fixedFluxPressure;
            value           uniform 1e5;
        }
    
        outlet
        {
            type            prghPressure;
            p                  uniform 1e5;
            value           uniform 1e5;
        }
    }
    
    // ************************************************************************* //
    
    
    
    
        object      T;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 0 0 1 0 0 0];
    
    internalField   uniform 294.59;
    
    boundaryField
    {
        walls
        {
            type            zeroGradient;
        }
      
        inlet
        {
            type            fixedValue;
            value           uniform 289.82;
        }
    
        outlet
        {
            type            inletOutlet;
            inletValue      $internalField;
            value           $internalField;
        }
        outletwater
        {
             type            inletOutlet;
            inletValue      $internalField;
            value           $internalField;
        }
    }
    
    // ************************************************************************* //
    
        object      k;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 2 -2 0 0 0 0];
    
    internalField   uniform 1e-5;
    
    boundaryField
    {
        walls
        {
            type            kqRWallFunction;
            value           $internalField;
        }
         inlet
        {
            type            fixedValue;
            value           $internalField;
        }
    
        outlet
        {
            type            inletOutlet;
            inletValue      $internalField;
            value           $internalField;
        }
        outletwater
        {
            type            inletOutlet;
            inletValue      $internalField;
            value           $internalField;
        }
    }
    
    
    // ************************************************************************* //
    
        object      fvSolution;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    solvers
    {
        "rho.*"
        {
            solver          PCG;
            preconditioner  DIC;
            tolerance       0;
            relTol          0;
        }
    
        p_rgh
        {
            solver          PCG;
            preconditioner  DIC;
            tolerance       1e-8;
            relTol          0.01;
        }
    
        p_rghFinal
        {
            $p_rgh;
            relTol          0;
        }
    
        "(U|h|e|k|epsilon|R)"
        {
            solver          PBiCGStab;
            preconditioner  DILU;
            tolerance       1e-6;
            relTol          0.1;
        }
    
        "(U|h|e|k|epsilon|R)Final"
        {
            $U;
            relTol          0;
        }
    }
    
    PIMPLE
    {
        momentumPredictor yes;
        nOuterCorrectors 2;
        nCorrectors     3;
        nNonOrthogonalCorrectors 0;
    }
    
    
    // ************************************************************************* //
    
    
    
    
    
    
        object      fvSchemes;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    ddtSchemes
    {
        default         Euler;
    }
    
    gradSchemes
    {
        default         Gauss linear;
    }
    
    divSchemes
    {
        default         none;
        div(phi,U)      Gauss upwind;
        div(phi,h)      Gauss upwind;
        div(phi,e)      Gauss upwind;
        div(phi,k)      Gauss upwind;
        div(phi,epsilon) Gauss upwind;
        div(phi,R)      Gauss upwind;
        div(phi,K)      Gauss linear;
        div(phi,Ekp)    Gauss linear;
        div(R)          Gauss linear;
        div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
        div(phiv,p)     Gauss upwind;
    }
    
    laplacianSchemes
    {
        default         Gauss linear corrected;
    }
    
    interpolationSchemes
    {
        default         linear;
    }
    
    snGradSchemes
    {
        default         corrected;
    }
    
    
    // ************************************************************************* //
    
    


  • 设置内容太多了不好一一看,如果可以的话,把你这个网格弄到10万以下,我明天中午12点左右可以尝试给你调试一下



  • 谢谢东岳老师!我的算例是这个链接文本@东岳



  • 这个有什么问题么,上面是速度,下面是温度

    捕获.JPG



  • @东岳 水温没有问题,但是流速在水的前端感觉影响范围太大了,请问这是合理的吗?cbee6294-c938-48a3-9edb-1c616c9acd68-image.png
    想得到类似这种效果,但这种算出来流速验证不符
    f2486aaf-fb9c-4c99-a045-3ff1da0e68c6-image.png
    c38d5a74-cd67-435c-a94e-daaa54b07c2c-image.png (计算11min后在x=11.43m处中垂线水平流速分布图)



  • 我马上要上课了,只能18号以后给你调节了,可以把这个文献发给我先简答看一下



  • 好的,谢谢东岳老师!这是参考文献链接文本



  • @东岳 老师您好,我将outlet的patch改成wall条件,最主要的问题还是反向流速很小,没有实测值那么大。



  • Hi @cfd20 :

    我把你的 case 放在了这里.

    我对你的问题很感兴趣,所以也想研究这个算例子. 所以我把我的想法直接写在了case 文件中 (note.org). 我会关注这个帖子,如果有必要的话,我会把我的想法告诉你.



  • 初步看了一下,很多地方我不太明白,都记录在了 comments 里面. FYI.



  • 感谢您宝贵的意见!边界条件的设置主要是参考求解器自带的算例:1.outlet的速度设为slip,主要是想将自由水面作可滑移的边界条件;2.fixedFluxPressure条件应该也是零法向梯度条件;3.请问壁面用固定速度为0设置有问题吗?需要用壁面函数吗?
    再次感谢您的意见,我会继续修改算例,如有错误的地方,还望指正。



  • @cfd20
    我看到一个比较关键的地方:

    我觉得,墙函数是非常关键的边界条件。 特别是在 RANS 中。

    我看到你对 alphat, epsilon 都用了墙函数,速度为什么不用,没有理由?

    有确定边界层节点足够覆盖边界层了么?

    我这有个参考资料:

    ansys 17 手册:

    cf9c0834-d047-4bb7-a71a-8f38719fbff9-image.png

    The thickness of the prism
    layer should be designed to ensure that around 15 or more nodes are actually covering the boundary
    layer. This can be checked after a solution is obtained, by looking at the turbulent viscosity, which has
    a maximum in the middle of the boundary layer – this maximum gives an indication of the thickness
    of the boundary layer



  • @东岳 帮忙把图片删掉把,没有注意到这是版权材料,只是作为学术交流而已。

    http://cfd-china.com/assets/uploads/files/1581049534658-cf9c0834-d047-4bb7-a71a-8f38719fbff9-image.png




Log in to reply