关于MRF的疑问



  • 大家好!我想使用simpleFoam+MRF计算SRFSimpleFoam的算例mixer,但是结果不一样。innerwall的速度分布不同。
    下图为使用SRFSimpleFoam的innerwall速度矢量图:
    替代文字
    下图为使用simpleFoam+MRF的innerwall速度矢量图:
    替代文字
    可见使用MRF时,innerwall没有转动速度,另外,在同样使用simpleFoam+MRF的mixerVessel2D中,rotor如下图同样没有转动速度:0_1494465724254_srfU2D.png
    因此我的问题是:

    • 使用MRF时为什么转动边界上的速度为0?
    • MRF计算得到的速度是绝对速度还是相对速度?
    • 如何利用simpleFoam+MRF代替SRFSimpelFoam?


  • @Izumi 我是将整个区域设置为MRFzone,MRFProperties文件如下:

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        location    "constant";
        object      MRFProperties;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    MRF1
    {
        cellZone    rotorcellZoneSet;
        active      yes;
    
        // Fixed patches (by default they 'move' with the MRF zone)
        nonRotatingPatches (inlet);
    
        origin    (0 0 0);
        axis      (0 0 1);
        omega     104.72;
    }
    
    // ************************************************************************* //


  • @Izumi 我的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 -10);
    
    boundaryField
    {
        inlet
        {
            type            fixedValue;
            value           uniform (0 0 -10);
        }
        outlet
        {
            type            pressureInletOutletVelocity;
            value           $internalField;
        }
        innerWall
        {
            type            noSlip;
        }
        outerWall
        {
            type            noSlip;
        }
        cyclic_half0
        {
            type            cyclic;
        }
        cyclic_half1
        {
            type            cyclic;
        }
    }
    
    
    // ************************************************************************* //
    

    p文件如下:

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volScalarField;
        location    "0";
        object      p;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 2 -2 0 0 0 0];
    
    internalField   uniform 0;
    
    boundaryField
    {
        inlet
        {
            type            zeroGradient;
        }
        outlet
        {
            type            fixedValue;
            value           uniform 0;
        }
        innerWall
        {
            type            zeroGradient;
        }
        outerWall
        {
            type            zeroGradient;
        }
        cyclic_half0
        {
            type            cyclic;
        }
        cyclic_half1
        {
            type            cyclic;
        }
    }
    
    
    // ************************************************************************* //

  • 管理员

    云图显示的不是很清楚。中间那个棒棒是什么?。。

    使用MRF时为什么转动边界上的速度为0?

    取决于你的边界条件以及paraview显示的数据。

    MRF计算得到的速度是绝对速度还是相对速度?

    绝对速度

    如何利用simpleFoam+MRF代替SRFSimpelFoam?

    后者已经被全面取代了。

    另外,有个重要的区别:MRF和SRF不一样。如果你用SRF,就不能用MRF。一个是单坐标系,一个是多坐标系。



  • @赵一铭 你好,我算的模型是搅拌器:
    0_1494501506451_00.png

    如上图,中间的“棒棒”是搅拌器的叶片,也就是innerwall,它是转动的;outerwall是静止的。
    我是将整个计算区域设置为一个MRF区域,inlet不随MRF转动,给的边界条件如之前的U文件中所示,innerwall和outerwall都是noslip。
    问题在于:使用SRFSimpleFoam时,innerwall设置为noslip后,利用paraview查看绝对速度时,如第一张图,innerwall是具有转动速度的。而使用simpleFoam+MRF时,将innerwall设置为noslip后,利用paraview查看绝对速度时,如第二(我在算的算例)、第三(OpenFOAM自带算例mixerVessel2D)张图,包含在MRF区域中的innerwall都没有转动速度。请问这是为什么?谢谢!



  • 将整个计算区域设置为一个MRF区域

    MRF在名字上叫做多重参考系,就是multiple reference frame,因此你不能将全部计算域设置为单一参考系。你最好使用SRFsimpleFoam,更加合理,不能使用simpleFoam。从速度矢量来看,simpleFoam模拟的也不是正确的。

    另外,MRF模拟一般采用fixedValue边界,虽然在常规物理边界上fixedValuenoSlip是一样的,但是尚未确认在MRF中是否一致。



  • @izumi 如果outerWall是静止的,那么在设置MRFProperties时,nonRotatingPatches是否应该包含outerWall?



  • nonRotatingPatches是用来设置AMI边界条件的 :expressionless:


登录后回复
 

与 CFD 中国 的连接断开,我们正在尝试重连,请耐心等待