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中文网

S

shampoo

@shampoo
关于
帖子
23
主题
3
群组
0
粉丝
1
关注
0

帖子

最新

  • OpenFOAM里kOmega模型的问题
    S shampoo

    @huoyanxiadebing 哇您解释的好清楚,学到了很多,感谢感谢!我积累的实在是太少了,还得加油呢


  • OpenFOAM里kOmega模型的问题
    S shampoo

    @huoyanxiadebing 哈哈,其实也能看出来用kOmega模型算我这个算例结果和实验差别挺大的,算的不准,或许是不适合这种高速流动。
    做这个对比其实是想说openfoam里的kOmega模型和fluent里的标准kOmega模型不太一样,和我在书上看到的也不太一样,主要是有的系数做了简化。
    这种变化对我的算例的计算结果有较大影响,但对于其他的算例或者流动情况这种简化的影响可能就不会很明显。而且这种简化对计算的影响是积极的还是消极的也不好判断,对于有些流动可能简化了算的更准,对于有些流动可能不简化算的更准,这可以提醒我们以后用OpenFoam的kOmega模型算东西可能要考虑一下这种影响。万一也有朋友想对比一下fluent和openfoam的计算结果,也用了komega模型,也发现差别很大,那我们做的东西还能相互映证一下,没准还更有底气,还能少走个弯路。
    然后kOmega模型的使用范围,我在网上查到的是低雷诺数预测效果较好,但好像高雷诺数也还行。对于自由剪切流比较适合。不过这些概括都比较笼统,我也就只算过一个喷流,没啥工程经验,如果有新算例我也就只能按着网上的建议去试,然后合不合适,有的时候算了才知道,还得具体问题具体分析。我觉得湍流模型这块其实挺有意思的,以我的算例为例,为了算喷流好多人拿不同的湍流模型在那测试,各有各的优劣。不过我觉得我还得多学习学习,吸取前人的经验。


  • OpenFOAM里kOmega模型的问题
    S shampoo

    @东岳 您是在论坛上看到的吗?我论坛上有人用fluent算了一个平板射流plane free jet的问题,感觉做的蛮好的。
    http://www.cfd-china.com/topic/3457/fluent-模拟-plane-free-jet/2?_=1588670538009


  • OpenFOAM里kOmega模型的问题
    S shampoo

    @东岳 老师我把壁面改成omegaWallFunction又跑了一遍,结果改善的不是很明显,我猜是壁面的计算对喷流流场计算影响有限。
    然后我去对比了Fluent中和 OpenFOAM中kOmega方程的区别,其实之前也比较过,发现其实大部分系数都一致,但有两个和流动相关的系数在OpenFOAM里做了简化。具体是这样的:
    标准kOmega方程:
    kom.png
    其他项和系数都一样,但是OpenFOAM里这两项1.png
    的系数和Fluent中存在差别。OpenFOAM把
    2.png
    分别定义为beta和Cmu,取值分别为0.072和0.09.也就是说忽略了3.png 的影响,将其默认为1.
    fluent中的这两项有更细节的计算方法:
    4.png
    由于我也找不到什么别的不同了,所以我就在OpenFOAM的kOmega模型里加上了这两项的计算,又重新跑了一遍case。这回跑出来的结果倒是和Fluent里的计算结果比较接近了,几次对比的结果如下:
    pic.png
    不过我也不敢确定我这样就是对的,或许这两项系数的修改对于我的算例影响很大,对于其他类型的流动影响就不是很大。所以也想看看大家有没有用OpenFOAM里的kOmega模型算过其他的算例,或许对于有些算例使用OpenFOAM默认的kOmega模型就可以算的很好,不需要考虑那两项系数的变化,对于有些算例需要考虑系数的变化,希望能确定一下OpenFOAM里标准kOmega模型的适用范围。
    我把我改的模型放上来,如果老师同学有兴趣可以用这个模型算一下试试。不过改的时候代码编得十分粗糙,就简单实现了功能,运算优化之类的都没有考虑。如果有人愿意帮我检查检查或者看看能不能优化就更好了,谢谢大家~mykOmega.zip


  • 关于OpenFOAM里kEpsilon模型的问题
    S shampoo

    @东岳 谢谢老师,我调了设置之后kepsilon模型的计算结果基本一致了。因为在对比不同湍流模型对喷流计算结果的影响,发现还是有很多问题呀。。。愁


  • rhoSimpleFoam计算翼型发散
    S shampoo

    气动方向菜鸡选手,也想和大佬讨论。

    1. 大佬要不要试一下OpenFOAM里的SA模型?这个一方程模型我看他们在算气动时还挺常用的,可能会好收敛一些,不过kwsst精度好像会好一些。
    2. 网格可能也有影响。边界条件或许可以参考OpenFOAM里算翼型的case。
    3. 还有可能是这个翼型不一定适合这么高的流速,看到的一些文献里马赫数在0.2左右,所以收敛可能就是挺难的。
    4. 对了还想问楼主SIMPLEC和SIMPLE算法有什么区别呀,看您的讨论似乎会好收敛一些?
      airfoil.png

  • 运行报错
    S shampoo

    如果是发散的话可能都原因太多了啊


  • 运行报错
    S shampoo

    @鲸落 如果大概知道温度范围的话或许可以用fvoption做一个limitTemperature?但也不一定有用


  • OpenFOAM里kOmega模型的问题
    S shampoo

    @东岳 我天,之前一直以为自己用的omegaWallFunction。结果用错了竟然还能算下去,我先把这改了试试。


  • OpenFOAM里kOmega模型的问题
    S shampoo

    @一颗鸭蛋 好的,谢谢你们的提醒。我后来按照Fluent里初始化的数据给了初始条件,用kOmega模型倒是能直接算下去了,但结果还是不对,您能帮我看看这些边界条件吗?
    mesh.jpg
    这个case是这样的,要算一个喷流,四周流体都是静止的(或者有一点很慢很慢的速度)。喷管入口总温和环境温度相同都是300K,喷管总压是环境压力的1.197倍。各个边界的条件设置如下,用的轴对称网格。
    U

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        location    "0";
        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        WALL
        {
            type            noSlip;
        }
        FAR
        {
            type            zeroGradient;
        }
        IN
        {
            type            zeroGradient;
        }
        OUT
        {
            type            zeroGradient;
        }
        AXIS
        {
            type            symmetryPlane;
        }
      
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    

    p

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        object      p;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [1 -1 -2 0 0 0 0];
    internalField   uniform 101325;
    
    boundaryField
    {
        WALL
        {
            type            zeroGradient;
        }
        FAR
        {
            type            totalPressure;
            p0           uniform 101326;
        }
        IN
        {
            type            totalPressure;
            p0           uniform 121286;
        }
        OUT
        {
            type            fixedValue;
            value         $internalField;
        }
        AXIS
        {
            type            symmetryPlane;
        }
     
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    

    T

    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      T;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 0 0 1 0 0 0];
    
    internalField   uniform 300;
    
    boundaryField
    {
           WALL
        {
           type            zeroGradient;
        }
        FAR
        {
            type            fixedValue;
             value           $internalField;
        }
        IN
        {
            type            totalTemperature;
            gamma           1.4;
            psi             thermo:psi;
            T0              uniform 300;
             value          uniform 300;
        }
        OUT
        {
            type            fixedValue;
            value         $internalField;
        }
        AXIS
        {
            type            symmetryPlane;
        }
       
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    

    k

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      k;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 2 -2 0 0 0 0];
    
    internalField   uniform 0.04;
    
    boundaryField
    {
          WALL
        {
           type            kqRWallFunction;
            value           uniform 113;
        }
        FAR
        {
            type            fixedValue;
            value           uniform 0.04;
        }
        IN
        {
            type            fixedValue;
            value           uniform 113;
        }
        OUT
        {
            type            zeroGradient;
        }
        AXIS
        {
            type            symmetryPlane;
        }
       
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    
    
    // ************************************************************************* //
    

    omega

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      omega;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 0 -1 0 0 0 0];
    
    internalField   uniform 186;
    
    boundaryField
    {
        FAR
        {
            type            fixedValue;
            value           uniform 186;
        }
        OUT
        {
            type            zeroGradient;
        }
        WALL
        {
            type            epsilonWallFunction;
            value           uniform 783589.9;
        }
        AXIS
        {
            type            symmetryPlane;
        }
        IN
        {
            type            fixedValue;
            value           uniform 783589.9;
        }
        SYM
        {
            type            empty;
        }
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    
    

    nut

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      nut;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 2 -1 0 0 0 0];
    
    internalField   uniform 0.01;
    
    boundaryField
    {
          WALL
        {
           type            nutkWallFunction;
            value           uniform 0.01;
        }
        FAR
        {
              type            calculated;
            value           uniform 0.01;
        }
        IN
        {
              type            calculated;
            value           uniform 0.01;
        }
        OUT
        {
              type            calculated;
            value           uniform 0.01;
        }
        AXIS
        {
            type            symmetryPlane;
        }
        SYM
        {
            type            empty;
        }
        SYM_pos
        {
            type            wedge;
        }
        SYM_neg
        {
            type            wedge;
        }
    }
    
    

    这是我之前的计算结果,对比喷流轴线上的速度分布和湍动能分布
    result.png
    用Fluent和OpenFOAM的计算做了个对比,kOmegaSST模型两个软件算的差不多,但kOmega模型就差很多,除了换湍流模型其他的计算条件都是一样的。

    然后大家说的边界条件,我现在比较担心壁面处的计算会对结果产生很大影响吗?我查了一下kOmega模型,OpenFOAM里的omega的边界条件似乎只有omegaWallFunction,壁面附近使用壁面函数。我不关心壁面附近边界层的情况,是不是只要保证y+在30~100间就可以?壁面附近的网格间距过大或过小是否都会有问题?


  • OpenFOAM里kOmega模型的问题
    S shampoo

    各位老师同学好,我最近在尝试用各种不同的湍流模型算发动机尾喷流的问题。在使用OpenFOAM里的kOmega模型进行计算时,参数怎么调算例都会发散,但使用其他模型比如LRR或kOmegaSST都可以比较好的收敛。后来先用kOmegaSST算了个初步结果再换成kOmega模型,算出来的结果依然和预想的结果差别较大。在论坛里搜,发现大家使用kOmegaSST模型较多,因为对模型的了解比较简单,计算的经验也比较少,想问一下是因为OpenFOAM里的kOmega模型不好使吗,为什么大家好像都不怎么用呢?


  • 关于OpenFOAM里kEpsilon模型的问题
    S shampoo

    最近在算喷流问题,发现都是kEpsilon模型,用fluent算和用openfoam算,算出来结果差别还蛮大的,速度核心区长度差别挺明显的。用的网格是一样的,边界条件设置的也一样。openfoam用的rhoSimpleFoam求解器,fluent用的pressure—base。有大佬研究过相关的问题吗,如果用同一个湍流模型在不同的软件里算相同的问题结果不一样,可能是由什么原因造成的呢?


  • 请问.msh的2维旋转轴对称网格如何转换到OpenFOAM
    S shampoo

    @Exthan 你取的是半径为0.35位置的速度和温度吧?其实那个并不是边界?


  • 请问.msh的2维旋转轴对称网格如何转换到OpenFOAM
    S shampoo

    @Exthan 啊我懂你的意思,但我一般就把那个平面近似当成圆弧面设边界条件。网格的单元也画不出圆弧的边啊,我觉得不用特纠结。如果一定要在那个圆弧面上设条件的话,不如单开个帖问问吧,这个我的确没考虑过,不好意思


  • 请问.msh的2维旋转轴对称网格如何转换到OpenFOAM
    S shampoo

    @Exthan 不吧,如果2D网格画的时候半径画到了0.35,转换完成的楔形网格最大的y应该有0.35啊。


  • 请问.msh的2维旋转轴对称网格如何转换到OpenFOAM
    S shampoo

    @Exthan top面是圆柱的顶面吗还是圆柱的圆柱面?为啥会用的symmetry呢?一般设等温就在boundary里把类型改成patch,然后温度的边界条件里设成fixed value,应该就可以了


  • 请问.msh的2维旋转轴对称网格如何转换到OpenFOAM
    S shampoo

    @LYD 我最近也在搞轴对称网格,我这里遇到这种情况是ok的,可以计算。感觉留着frontAndBack也没啥大问题。反正在设温度、压力的边界条件的时候都带上,给成empty的type就行


  • openfoam6.0版本中标准k-e模型的Gk项发生了变化?
    S shampoo

    @羽之下 thank you,谢谢你的回复。我记得好像在哪看过说这里引用了一个假设,我决定把这部分系统的看一看,有什么新发现我会继续在这里交流~


  • 代码实现的问题
    S shampoo

    更新:使用fvm的时候可以编译但计算不行,改成fvc 可以计算接下来就是看能不能收敛了


  • 代码实现的问题
    S shampoo

    啊,我现在改成这样了:
    外层定义volSymmTensorField devR(dev(R));
    R方程里面用 fvm::div(alphaRhoPhi,devR)
    编译可以通过,而且貌似是可以代表上述表达的,不知道这样对不对?

  • 登录

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